如何为iPhone 8和8+定义单独的约束?
由于两者的宽度不同。是否可以通过情节提要区分它。
基本上我想为这两部手机设置不同的x和y边距。
答案 0 :(得分:0)
不,您不能在情节提要中分离iPhone 8和8+的布局,因为自动布局基于尺寸类别,并且没有可用于分离iphone 8和8+的尺寸类别。
有关更多信息:https://medium.com/@craiggrummitt/size-classes-in-interface-builder-in-xcode-8-74f20a541195。
答案 1 :(得分:0)
自定义约束类 IBDesignable和IBInspectable
import UIKit
@IBDesignable
class MyConstraint: NSLayoutConstraint {
@IBInspectable
var iPhone8: CGFloat = 0 {
didSet {
if UIScreen.main.bounds.maxY == 667 &&
UIScreen.main.bounds.maxX == 375 {
constant = iPhone8
}
}
}
@IBInspectable
var iPhone8Plus: CGFloat = 0 {
didSet {
if UIScreen.main.bounds.maxX == 414 &&
UIScreen.main.bounds.maxY == 736 {
constant = iPhone8Plus
}
}
}
}
设置约束自定义类