我希望iPhone 6 +,6和5的每个视图看起来几乎相同.在附图中,我的意思是,例如,"取消"按钮应该是iPhone 5中屏幕左边缘30像素, 6 x为35 px,6 +为45 px,其他元素为+ px.
如何为每种类型的特定约束大小放置?如果我在约束中使用比例,那么按钮会增长,但是它们的大小不受控制,元素之间的空间也不能改变.具有特定约束大小的大小类我也不能使用,因为cW aH对于5和6个iphone是相同的.(据我所知).
我无法弄明白该怎么做.6和6+的不同设计通常如何管理?

您无法使用自动布局定位iPhone的特定型号.它并不意味着这一点.构建自动布局是为了避免这种情况.但是,这里有两个解决方法:
使用堆栈视图.他们非常适合这种布局.
放置一个不可见的,UIView并创建附加到的顶部,底部,前导和尾随约束Superview.之后,将您刚刚放置的对象(它们可以UIImageViews,UILabels并且列表继续)放置在UIView您的内部.现在创建将对象连接到的顶部和底部约束UIView.
我创建了一个演示程序,向您展示它是如何完成的.正如您将看到的,按钮具有不同的大小,具体取决于屏幕的大小.请从演示这个链接.
您可以通过编程方式创建和修改约束.根据用户的设备创建NSLayoutConstraint并调整constant它:
var myConstraint = NSLayoutConstraint (item: myButton,
attribute: NSLayoutAttribute.Top,
relatedBy: NSLayoutRelation.Equal,
toItem: self.view,
attribute: NSLayoutAttribute.Top,
multiplier: 1,
constant: 0)
self.view.addConstraint(myConstraint)
if UIScreen.mainScreen().bounds.size.width == 375 {
// iPhone 6
myConstraint.constant = 10
} else if UIScreen.mainScreen().bounds.size.width == 414 {
// iPhone 6+
myConstraint.constant = 15
}
Run Code Online (Sandbox Code Playgroud)