UIImageView 不会将自身调整为它持有的 UIImage
UIImageView doesn't resize itself to the UIImage it holds
我有一个 UIImageView
可以自动布局到容器边距。我在ViewController中给它设置了一个UIImage
。如果我使用 UIViewContentModeScaleAspectFit
那么图像会按照我的意愿在屏幕中间居中并且一切看起来都很棒,但是当我给 UIImageView
一个背景颜色时,我可以看到它仍然一直传播到容器边距,并没有得到图像的比例和尺寸。这是我的代码:
UIImage *passedImage = [UIImage imageNamed:self.photoTitle];
CGRect imageBounds = CGRectMake(0, 0, passedImage.size.width, passedImage.size.height);
[self.imageView setImage:passedImage];
self.imageView.bounds = imageBounds;
self.imageView.contentMode = UIViewContentModeScaleAspectFit;
我已尽一切努力修复它并到处寻找答案,请帮助我,你是我唯一的希望。
不是将图像视图的边缘固定到容器边距,而是将其中心 X 和中心 Y 固定到容器的中心 X 和中心 Y。
这会产生相同的视觉效果——图像居中——但图像视图可以根据其内容自由调整自身大小。
UIImageView 不会根据其呈现的图像大小自行调整大小。如果你需要相应地调整它的大小,你需要自己做。 Matt 的回答是合理的,但您仍然需要在某个时候更新您的图像视图大小。我建议在视图的 layoutSubviews
或 updateConstraints
方法中或在视图控制器的 viewDidLayoutSubviews
.
中执行此操作
我有一个 UIImageView
可以自动布局到容器边距。我在ViewController中给它设置了一个UIImage
。如果我使用 UIViewContentModeScaleAspectFit
那么图像会按照我的意愿在屏幕中间居中并且一切看起来都很棒,但是当我给 UIImageView
一个背景颜色时,我可以看到它仍然一直传播到容器边距,并没有得到图像的比例和尺寸。这是我的代码:
UIImage *passedImage = [UIImage imageNamed:self.photoTitle];
CGRect imageBounds = CGRectMake(0, 0, passedImage.size.width, passedImage.size.height);
[self.imageView setImage:passedImage];
self.imageView.bounds = imageBounds;
self.imageView.contentMode = UIViewContentModeScaleAspectFit;
我已尽一切努力修复它并到处寻找答案,请帮助我,你是我唯一的希望。
不是将图像视图的边缘固定到容器边距,而是将其中心 X 和中心 Y 固定到容器的中心 X 和中心 Y。
这会产生相同的视觉效果——图像居中——但图像视图可以根据其内容自由调整自身大小。
UIImageView 不会根据其呈现的图像大小自行调整大小。如果你需要相应地调整它的大小,你需要自己做。 Matt 的回答是合理的,但您仍然需要在某个时候更新您的图像视图大小。我建议在视图的 layoutSubviews
或 updateConstraints
方法中或在视图控制器的 viewDidLayoutSubviews
.