我正在切换到autolayout,我想相对于设备的高度定位视图。我应该如何设置约束以满足这种条件。
我有适合iPhone 5的布局,但对于iPhone 6Plus,我想将“红色”移动到“灰色”的位置:
目前我所有的约束:
答案 0 :(得分:1)
一个想法可能是将用户名,密码和登录项放在带有clearBackground的uiView上,然后为该视图及其超级视图创建约束并为其创建一个出口。然后,您可以检测代码中使用的手机,并在willLayoutSubviews中以编程方式修改约束。
if ((int)[[UIScreen mainScreen] bounds].size.height == 736)
{
// This is iPhone 6+ screen
myConstraint.constant = 150;
} else if ((int)[[UIScreen mainScreen] bounds].size.height == 568) {
// This is iPhone 5s screen
frameRateLabelHeightConstraint.constant = 100;
}
毫无疑问,在Autolayout中有更好的方法可以做到这一点,但我觉得它有点令人困惑所以我过去曾使用过这种方法。
答案 1 :(得分:1)
以上是@ One Drive上传的示例项目。以下是各种版本的iPhone模拟器的示例输出...
答案 2 :(得分:0)
我认为你想把你的表格放在视野的中心。所以我认为最好的解决方案是将表单元素放在另一个透明视图上,并添加到此视图centerX aligment约束和centerY aligment约束。
您可以检查另一种方式here