首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用AutoLayout更改UIImageView帧大小

使用AutoLayout更改UIImageView帧大小
EN

Stack Overflow用户
提问于 2015-09-13 02:35:55
回答 2查看 1.2K关注 0票数 0

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

代码语言:javascript
运行
复制
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,上面没有任何关于图像大小改变边框的内容。这很重要,因为我是根据帧大小调整图像大小的。

EN

回答 2

Stack Overflow用户

发布于 2016-02-04 22:31:00

如果您使用的是AutoLayout。

步骤1:选择UIImageView,点击右下角的引脚。

步骤2:添加高度和宽度约束。

步骤3:选择约束并将其拖动到.h文件中。

步骤4:使用以下代码在.m文件中设置所需的高度和宽度。

代码语言:javascript
运行
复制
_heightConstraint.constant = 100;
_widthConstraint.constant = 100;
票数 2
EN

Stack Overflow用户

发布于 2015-09-13 03:06:57

我知道在不限制宽度和高度的情况下,使用AutoLayout的imageViews会很有趣。许多图像都比imageView大得多,因此您可以看到imageView变得非常大(可能是因为它无法计算其固有的内容大小)。我以前已经通过限制imageView的宽度和高度解决了这个问题,但很明显,您希望您的宽度和高度随设备大小动态变化。

我建议在项目中使用一个你想要的大小的独立UIView,并将你的UIImageView嵌入其中。为这两者设置正确的约束,这应该可以解决您的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32542337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档