Ios 使用限制最大大小的约束在大型UINavigationBar中自定义视图
我正在创建一个自定义视图,并将其作为子视图放置在Ios 使用限制最大大小的约束在大型UINavigationBar中自定义视图,ios,swift,uiviewcontroller,nslayoutconstraint,Ios,Swift,Uiviewcontroller,Nslayoutconstraint,我正在创建一个自定义视图,并将其作为子视图放置在viewDidLoad中的UINavigationBar中。这样做的目的是,当导航栏调整大小时,它会更改此视图的高度,但在加载时不会扩展到超过原始导航栏大小的高度。除了不会限制视图的高度外,所有功能都正常工作 如何获取约束以限制视图的最大高度优先于前导/尾随约束 override func viewDidLoad() { super.viewDidLoad() if let navigationBar = self.navigati
viewDidLoad
中的UINavigationBar中。这样做的目的是,当导航栏调整大小时,它会更改此视图的高度,但在加载时不会扩展到超过原始导航栏大小的高度。除了不会限制视图的高度外,所有功能都正常工作
如何获取约束以限制视图的最大高度优先于前导/尾随约束
override func viewDidLoad() {
super.viewDidLoad()
if let navigationBar = self.navigationController?.navigationBar, let titleView = self.titleView {
navigationBar.addSubview(titleView)
let heightConstraint = titleView.heightAnchor.constraint(lessThanOrEqualToConstant: navigationBar.bounds.height)
heightConstraint.priority = .required
heightConstraint.isActive = true
let topConstraint = titleView.topAnchor.constraint(equalTo: navigationBar.topAnchor)
topConstraint.priority = .required
topConstraint.isActive = true
let horizontalConstraints = NSLayoutConstraint.constraints(withVisualFormat: "H:|-0-[titleView]-0-|", options: .directionLeadingToTrailing, metrics: nil, views: ["titleView": titleView])
for constraint in horizontalConstraints {
constraint.priority = .required
constraint.isActive = true
}
let verticalConstraints = NSLayoutConstraint.constraints(withVisualFormat: "V:|-0-[titleView]-0-|", options: .directionLeadingToTrailing, metrics: nil, views: ["titleView": titleView])
for constraint in verticalConstraints {
constraint.priority = .fittingSizeLevel
constraint.isActive = true
}
}
}
为什么heightAnchor约束不优先