gpt4 book ai didi

ios - NSLayoutConstraints 不引用 View 工作

转载 作者:行者123 更新时间:2023-11-28 15:37:15 25 4
gpt4 key购买 nike

我想根据 View 大小创建一个容器 View 。该代码不言而喻,但它不起作用。我试过使用覆盖 viewWillAppear 无济于事。

导入 UIKit

class ViewController: UICollectionViewController, UICollectionViewDelegateFlowLayout, UITextFieldDelegate {

let searchBarContainer: UIView = {
let sBarContainer = UIView()
sBarContainer.backgroundColor = UIColor.gray
return sBarContainer
}()



override func viewDidLoad() {
super.viewDidLoad()
navigationItem.title = "Search Bar"
collectionView?.backgroundColor = UIColor.white

view.addSubview(searchBarContainer)

NSLayoutConstraint(item: searchBarContainer, attribute: .width, relatedBy: .equal, toItem: view, attribute: .width, multiplier: 1, constant: 0).isActive = true

NSLayoutConstraint(item: searchBarContainer, attribute: .height, relatedBy: .equal, toItem: view, attribute: .height, multiplier: 1, constant: 0).isActive = true

NSLayoutConstraint(item: searchBarContainer, attribute: .bottom, relatedBy: .equal, toItem: view, attribute: .bottom, multiplier: 1, constant: 0).isActive = true

}


}

有什么建议吗?谢谢

最佳答案

像那样创建 NSLayoutConstraints 只会返回约束。您要么需要将它们添加到父 View ,要么如果您使用的是 iOS 8+,则可以使用更高级的布局 anchor 。

所以,例如:

NSLayoutConstraint(item: searchBarContainer, attribute: .width, relatedBy: .equal, toItem: view, attribute: .width, multiplier: 1, constant: 0).isActive = true

成为

label.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true

编辑:需要明确的是, anchor 路由意味着您不必在创建它们后手动添加它们。

关于ios - NSLayoutConstraints 不引用 View 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44168209/

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