【发布时间】:2016-09-06 03:12:30
【问题描述】:
我似乎无法弄清楚约束和自动布局。在 iPad 上横向和纵向时,如何使两个对象之间的间距不同。
我并排放置到 UIViews。在纵向时,我希望它们之间的间距为 40,但在横向时,它可以更大,因为宽度更大。
这里是横向的。如您所见,它似乎也没有填满屏幕,最终出现了很多空白空间。
有什么建议吗?谢谢!
【问题讨论】:
标签: ios xcode swift ipad autolayout
我似乎无法弄清楚约束和自动布局。在 iPad 上横向和纵向时,如何使两个对象之间的间距不同。
我并排放置到 UIViews。在纵向时,我希望它们之间的间距为 40,但在横向时,它可以更大,因为宽度更大。
这里是横向的。如您所见,它似乎也没有填满屏幕,最终出现了很多空白空间。
有什么建议吗?谢谢!
【问题讨论】:
标签: ios xcode swift ipad autolayout
您可以单击约束值旁边的小 + 图标,然后为另一个尺寸类别选择不同的值。
或者您可以根据您的方向更改代码中的约束值。
或者您可以添加具有较低优先级的额外约束,然后在您处于横向模式时增加优先级。
【讨论】:
不要给间距约束一个像 40 这样的常数值,而是让它成为一个比例宽度约束,它是安装在它之间的一个视图的宽度的一小部分,或者是整个超级视图宽度的一小部分.这样,随着屏幕宽度变大(如横向),间距也会按比例变宽。
【讨论】:
除了@Daniel Hall 的回答,我还想指出,您还可以将两个UIView 的前缘和后缘固定在他们的父视图和彼此之间。
例如:
第一个UIView:前缘距父视图 10 点,后缘距第二个 UIView 40 点
第二个UIView:前缘距第一个UIView 40 个点,后缘距父视图10 个点
旋转设备后,它应该会根据这些自动布局约束自行调整大小。当然,使用这种方法,您的两个UIView 可能会超出准确的比例,因此请明智地使用它。
【讨论】:
我最终不得不将它固定在底部和它们各自的侧面。
查看1:
领先:30
底部:25
查看2:
我对它们之间的空间使用了 >= 约束 (>= 5)。如果我增加这些约束中的任何一个的常数,视图就会重叠。这不是最好的情况,因为在横向模式下我仍然有很多空白空间,但这是我能想到的最好的情况。
【讨论】: