我有一个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;
我已经尝试了一切来解决问题,到处寻找答案,请帮助我,你是我唯一的希望。
答案 0 :(得分:0)
不是将图像视图的边缘固定到容器边缘,而是将其中心X和中心Y固定到容器的中心X和中心Y.
这会产生相同的视觉效果 - 图像居中 - 但会让图像视图根据其内容自由调整大小。
答案 1 :(得分:-1)
UIImageView不会根据渲染的图像大小调整自身大小。如果您需要相应地调整大小,则需要自己完成。马特的答案是合理的,但您仍需要在某个时候更新图像视图大小。我建议您使用layoutSubviews
或updateConstraints
方法查看视图或查看控制器viewDidLayoutSubviews
。