一种简单的方法,可以同时支持 iOS 11 的安全区域锚点和 iOS <= 10 的顶部/底部布局指南。CompatibleLayoutAnchors 移除了检查要使用哪些布局锚点的样板代码。
问题
如果您使用 iOS 11 的安全区域和 NIBs 作为界面,iOS <= 10 时的回退约束将回退到父视图的锚点,而不是顶部/底部布局指南。
在常规工作流程中,您会设置 nib,并在 Interface Builder 中看起来很好。
但在 iOS <= 10 上看起来是破损的。
实际 | 期望 |
---|---|
![]() |
![]() |
通过 Cocoapods 安装
将以下内容添加到您的 Podfile
use_frameworks!
pod 'CompatibleLayoutAnchors'
如何使用
您已有待在 NIB 文件中的布局的所有布局约束。在您的视图控制器中引用与安全区域顶部锚点连接的顶部约束和与安全区域底部锚点连接的底部约束。使用 assignCompatibleConstraint(_:for:)
重新分配合适的约束。
assignCompatibleConstraint(&myTopConstraint, for: .top)
示例
此代码与上方截图相符。
class ViewController: UIViewController {
@IBOutlet weak var headlineLabelTopConstraint: NSLayoutConstraint!
@IBOutlet weak var footnoteLabelBottomConstraint: NSLayoutConstraint!
override func viewDidLoad() {
super.viewDidLoad()
assignCompatibleConstraint(&headlineLabelTopConstraint, for: .top)
assignCompatibleConstraint(&footnoteLabelBottomConstraint, for: .bottom)
}
}
贡献
欢迎提交问题和拉取请求!