gpt4 book ai didi

Swift 编程约束 view.bottomAnchor 导致问题

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

我正努力在所有程序限制方面做得更好。

我创建了一个我想做的界面表示,以确保一切都变成蓝色并且在运行时没有出错。

在 Interface Builder 中我创建了一个 UIView,将比例设置为 1:1,顶部 anchor 100,底部 anchor 450,并对其进行水平约束。

效果很好。

现在我删除了所有这些并通过代码完成

我觉得这应该和IB版的一样...

let testView = UIView()

view.addSubview(testView)
testView.backgroundColor = .red


let testViewTopConstraint = testView.topAnchor.constraint(equalTo: view.topAnchor, constant: 100)
let testViewBottomConstraint = testView.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 450)
let testViewCenterXConstraint = testView.centerXAnchor.constraint(equalTo: view.centerXAnchor)
let testViewAspectConstraint = NSLayoutConstraint(item: testView,
attribute: .height,
relatedBy: .equal,
toItem: testView,
attribute: .width,
multiplier: (1.0 / 1.0),
constant: 0)


NSLayoutConstraint.activate([testViewTopConstraint, testViewBottomConstraint, testViewCenterXConstraint, testViewAspectConstraint])

testView.translatesAutoresizingMaskIntoConstraints = false

当我运行它时,红色方 block 变成了一个延伸到末端的矩形(可能超出)。

我玩过编程约束。如果我要添加一个前导约束,我完全没问题,它似乎是我的底部约束,总是把我搞得一团糟。

我的底部约束有什么问题?还是我做错了什么?

最佳答案

有几件事,但要在这里回答您的特定问题,您只需在 450 常量中添加一个 -

let testViewBottomConstraint = testView.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: -450)

您还可以通过添加更多 anchor 来省略 NSLayoutConstraint。

关于Swift 编程约束 view.bottomAnchor 导致问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43537060/

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