我似乎无法弄清楚约束和自动布局 . 在横向和纵向时,如何在iPad上使两个对象之间的间距不同 .
我和UIViews并排放置 . 在肖像时,我希望它们之间的间距为40,但在横向时,它可以更大,因为有更多的宽度 .
这是肖像模式下的样子 . 我很满意 .
这里是景观 . 正如你所看到的那样,它似乎也没有填满屏幕,最终会出现很多空白空间 .
有什么建议?谢谢!
不要给间距约束一个像40那样的常量值,而是使它成为一个比例宽度约束,它是安装它之间的一个视图宽度的一小部分,或者是整个超视图宽度的一小部分 . 这样,随着屏幕的宽度变大(如在横向方向上),间距也成比例地变宽 .
除了@Daniel Hall的回答之外,我还想指出你还可以将两个 UIView 的前沿和后缘固定到父视图和彼此之间 .
UIView
例如:
首先 UIView :前缘10点从父视图开始,后缘40点从第二个 UIView 开始
秒 UIView :前缘40点从第一个 UIView 开始,后缘从父视图开始10点
旋转设备后,它应根据这些自动布局约束调整自身大小 . 当然,使用这种方法,你可能会让你的两个 UIView 超出准确的比例,所以明智地使用它 .
我最终不得不把它钉在底部和它们各自的两侧 .
查看1:
领先:30
底部:25
观点2:
尾随:30
我对它们之间的空间使用了> =约束(> = 5) . 如果我在任何这些约束上增加常量,则视图将重叠 . 这不是最好的情况,因为在景观模式中我仍然有很多空白空间,但这是我能想到的最好的空间 .
您可以单击约束值旁边的小图标,然后为另一个大小类选择不同的值 .
或者您可以根据方向更改代码中的约束值 .
或者您可以添加具有较低优先级的额外约束,然后在横向模式下增加优先级 .
4 回答
不要给间距约束一个像40那样的常量值,而是使它成为一个比例宽度约束,它是安装它之间的一个视图宽度的一小部分,或者是整个超视图宽度的一小部分 . 这样,随着屏幕的宽度变大(如在横向方向上),间距也成比例地变宽 .
除了@Daniel Hall的回答之外,我还想指出你还可以将两个
UIView
的前沿和后缘固定到父视图和彼此之间 .例如:
首先
UIView
:前缘10点从父视图开始,后缘40点从第二个UIView
开始秒
UIView
:前缘40点从第一个UIView
开始,后缘从父视图开始10点旋转设备后,它应根据这些自动布局约束调整自身大小 . 当然,使用这种方法,你可能会让你的两个
UIView
超出准确的比例,所以明智地使用它 .我最终不得不把它钉在底部和它们各自的两侧 .
查看1:
领先:30
底部:25
观点2:
尾随:30
底部:25
我对它们之间的空间使用了> =约束(> = 5) . 如果我在任何这些约束上增加常量,则视图将重叠 . 这不是最好的情况,因为在景观模式中我仍然有很多空白空间,但这是我能想到的最好的空间 .
您可以单击约束值旁边的小图标,然后为另一个大小类选择不同的值 .
或者您可以根据方向更改代码中的约束值 .
或者您可以添加具有较低优先级的额外约束,然后在横向模式下增加优先级 .