gpt4 book ai didi

ios - 基于屏幕高度子类化 NSLayoutConstraint 常量

转载 作者:搜寻专家 更新时间:2023-10-31 22:01:26 25 4
gpt4 key购买 nike

我有一个带有选项卡栏的项目,每个选项卡都有一个自定义导航栏。每个导航栏 UIView 都在 Storyboard中设置了高度约束常量。

我想将这个 NSLayoutConstraint 子类化(用于 Nav 高度),以便它改变 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 的特定值?

最佳答案

你可以覆盖常量变量:

final class NavHeightFixiPhoneXConstraint: NSLayoutConstraint {

override var constant: CGFloat {
set {
super.constant = newValue
}
get {
return navBarHeightConstant()
}
}

private func navBarHeightConstant() -> CGFloat {
switch (UIScreen.main.bounds.height) {
case 812:
return 90
default:
return 64
}
}
}

关于ios - 基于屏幕高度子类化 NSLayoutConstraint 常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46837977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com