Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用限制最大大小的约束在大型UINavigationBar中自定义视图_Ios_Swift_Uiviewcontroller_Nslayoutconstraint - Fatal编程技术网

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约束不优先