我已经使用AutoLayout设置了一个UIImageView。我已经为顶部、底部、前导和拖尾设置了约束(我希望宽度和高度根据手机的大小进行更改)。在我的属性检查器中,它还显示图像视图的宽度和高度。由于某些原因,当视图第一次被加载时,顶部空间到顶部布局约束被忽略,并且图像离开屏幕,并且使用IB中的高度(332)。一旦添加了照片,视图就会按预期调整大小。我NSLogged图像视图的帧高度,它正在改变。我不明白,我以为图像视图的框架总是一样的。我没有得到任何自动布局错误,一切都是蓝色的。

UIImage *imageToView = [existingImage resizedImageWithBounds:self.selectPhoto.frame.size];//Resize the image for better performance
 self.selectPhoto.contentMode =UIViewContentModeScaleAspectFit;
 NSLog(@"Select Photo Frame Size Height is %f", self.selectPhoto.frame.size.height); //The first time this screen loads, this height is 332.  Every other time (after the user enters a new photo, the height is 310 which is what I want.
self.selectPhoto.image = imageToView;重述:为什么我的self.selectPhoto (如截图所示的大图).frame会发生变化?我仔细检查了一下Apple Docs,上面没有任何关于图像大小改变边框的内容。这很重要,因为我是根据帧大小调整图像大小的。
发布于 2016-02-04 22:31:00
如果您使用的是AutoLayout。
步骤1:选择UIImageView,点击右下角的引脚。
步骤2:添加高度和宽度约束。
步骤3:选择约束并将其拖动到.h文件中。
步骤4:使用以下代码在.m文件中设置所需的高度和宽度。
_heightConstraint.constant = 100;
_widthConstraint.constant = 100;发布于 2015-09-13 03:06:57
我知道在不限制宽度和高度的情况下,使用AutoLayout的imageViews会很有趣。许多图像都比imageView大得多,因此您可以看到imageView变得非常大(可能是因为它无法计算其固有的内容大小)。我以前已经通过限制imageView的宽度和高度解决了这个问题,但很明显,您希望您的宽度和高度随设备大小动态变化。
我建议在项目中使用一个你想要的大小的独立UIView,并将你的UIImageView嵌入其中。为这两者设置正确的约束,这应该可以解决您的问题。
https://stackoverflow.com/questions/32542337
复制相似问题