【发布时间】:2017-10-19 19:58:06
【问题描述】:
我有一个带有标签栏的项目,每个标签都有一个自定义导航栏。每个导航栏 UIView 都在情节提要中设置了一个高度约束常量。
我想继承这个 NSLayoutConstraint(用于导航高度),以便它改变 iPhone X 的高度。导航栏在 iPhone X 上需要更高,因为我没有使用“out of盒子”对象,我的约束需要手动设置。
本质上,我想在子类中做如下的事情,这样我就不必重复一堆代码,做不必要的出口:
override func viewWillLayoutSubviews() {
navBarHeightConstraint.constant = navBarHeightConstraintConstant()
}
func navBarHeightConstraintConstant() -> CGFloat {
switch(UIScreen.main.bounds.height) {
case 812: // iPhone X
return 90
default: // all others
return 64
}
}
我已经创建了子类,但是不知道用什么方法来执行上面的代码。
class NavHeightFixiPhoneXConstraint: NSLayoutConstraint {
// Nothing... yet!
}
如何子类化 NSLayoutConstraint 以便它仅显示 iPhone X 的特定值?
【问题讨论】:
标签: ios swift subclass nslayoutconstraint iphone-x