将UIImageView与约束一起使用

时间:2014-10-24 08:38:41

标签: ios objective-c uiviewcontroller uiimageview constraints

我的UIImageView在我的应用中保存了个人资料图片。方面是" Aspect Fit"。但我有一些问题。

我已经将UIImageView中的一个禁令固定在上面较大的UImageView上,并带有超级视图的前导空间。

enter image description here

但它在运行时看起来像这样:

enter image description here

方式太大而且放错了。

在IB中看起来也是如此:

enter image description here

我应该怎么做才能在这里实现正确的行为?

谢谢! 埃里克

2 个答案:

答案 0 :(得分:5)

一切都归功于内在内容大小。就像UILabel和UIButton根据其内容调整自身大小一样,UIImageView也会根据其要保留的图像大小调整自身大小。

内在的内容大小对标签和按钮非常有用,但在UIImageView方面却不太好。因为您要设置为UIImageView的图像实际上可能比屏幕尺寸大,我们不希望图像视图与图像本身一样大。

因此,一个简单的解决方案是在图像视图上设置宽度和高度约束纵横比约束,以便图像视图的大小保持不变

HTH:)

答案 1 :(得分:1)

您的图像视图会根据您设置的图像调整自身大小。

此行为在(例如)您希望视图增长以显示所有文本的文本视图中非常有用。它在图像视图中有时不那么有用,它们是静态UI的一部分。

一种解决方案是为视图添加约束以保持您设置的大小:右键从视图拖动到自身,然后像添加任何其他约束一样添加宽度约束,然后添加垂直高度约束宽高比约束。

另一种解决方案是提供正确大小的资源,以便视图自动调整到正确的尺寸。