我需要使用单个UIControl自动布局故事板UIView。 UIControl应该居中,需要具有1:1的宽高比,并且应始终使用90%的超视图宽度或高度,具体取决于设备方向而不剪裁。
我添加了4个约束
此设置在纵向模式下工作正常,但在横向模式下失败。 (见下图)
我需要什么样的约束才能解决这个问题。如果旋转设备,是否必须更改约束?
人像模式
横向模式 - 错误
横向模式 - 样机。这就是我想要的。
答案 0 :(得分:4)
这是一种方法:
现在,当您处于人像状态时,自动布局将能够通过使红色框的宽度与之前一样为90%来满足所有约束。切换到横向时,“等高度”约束将确保红色框不会超过高度的90%,因为此约束具有1000个优先级,但“自动布局”也会使框尽可能大,以尝试最好服务于Equal Widths约束。
答案 1 :(得分:1)
您强制使用视图宽度和宽高比。因此,当您的宽度增长时,autolayout将强制您的身高也增长,以保持1:1的宽高比。 你必须:
<= 0.9* Superview
,优先级为1000 == 0.9* Superview
,优先级为750 我没有尝试过,但它应该看起来更好;)