我在UIView的中间有一个UIIMageView。
我想保持比率
1)UIIMageView为0.36:0.64
2)将UIImageView的宽度填充到UIView的左右两侧(例如,UIIMageView为UIView宽度的0.9)
它在比例几乎等于0.36:0.64的较大设备(例如iPhone XS Max,iPhone 8 Plus)上运行良好,但在iPhone 4s上却不行。
问题输出iPhone 8 Plus:
UIImageView的高度大于UIView的高度,这是不理想的
当前限制:
我知道我不能有固定的0.9宽度。但是我应该用情节提要替换它吗?我需要图像尽可能多地填充屏幕,但是具有相同的宽高比。
答案 0 :(得分:1)
您要“稍加填充” ...在此示例中,我将使用20-pts
,并假设您的意思是至少要 每边和顶部和底部20点。
您可以使用>=
值以及将Priority
设置为小于1000
的宽度和高度约束来完成此操作。
看看这些约束:
我们已将纵横比设置为36:64
(与0.36:0.64
相同,但更有意义)。
我们将顶部,底部,前导和尾部全部设置为>= 20
...,以防止任何边比20-pts
靠近边缘(安全区域边缘)。
我们设置了centerX
和centerY
约束,以保持视图居中。
最后一步是将图像视图的width
和height
设置为等于视图安全区域的宽度和高度, 但是 我们给每个人Priority
中的750
。
用简单的语言说:使imageView尽可能宽和高, 不违反 边缘填充,并且 始终< / em> 。保持宽高比。
这是在XS上的外观:
在8:
和4S:
,这是在旋转为“横向”方向的8上它的外观: