我正在尝试使用自动布局将以下视图放置在不同设备上可能具有不同大小的viewController中:
所有UILabel的顶部或底部以及它们之间应具有固定的空间。
UIImageView应该根据剩余空间具有灵活的宽度和高度,并具有1:1的纵横比。
UILabel具有以下约束:
顶部空间
底部空间
容器水平中心
UIImage视图具有以下约束:
容器水平中心
1:1比例
底部标签空间
标签顶部空间
宽度:100(优先级250)
高度:100(优先级250)
在Xcode预览中,一切看起来都不错,但是在运行应用程序时,UIImage会覆盖整个屏幕,而不是正确地调整其宽度和高度。
最佳答案
首先,确保ImageView
上方的标签钩到Top space to Top Layout Guide
,并且ImageView
下方最底部的标签钩到Bottom space to bottom Layout Guide
。
检查ImageView
下的所有标签是否都钩在其下方的标签上。
现在检查“图像”视图是否钩在顶部和底部标签上。给出width constraint
并获得销路。
根据约束,ImageView
的高度根据屏幕高度而变化。
可以在程序中使用宽度出口相应地更改宽度,如下所示
self.img_width.constant = self.imgView.frame.size.height;
希望这能解决您的问题。