![](/img/trans.png)
[英]IBOutlet for constraint and connect that to a UIButton programatically
[英]How to change programatically added constraint for UIButton
我在代碼中添加了對UIButton的約束:
topBtn.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
topBtn.topAnchor.constraint(equalTo: self.view.topAnchor, constant: 50)
])
稍后,如果我單擊某個按鈕,我希望刪除此約束並將其更改為
NSLayoutConstraint.activate([
topBtn.topAnchor.constraint(equalTo: self.view2.topAnchor, constant: 50)
])
怎么做到這一點? 我試過了
NSLayoutConstraint.deactivate([
topBtn.topAnchor.constraint(equalTo: self.view.topAnchor, constant: 50)
])
但它沒有效果,XCode抱怨我不能滿足constarints。
將對約束的引用保存為
let topConstraint = topBtn.topAnchor.constraint(equalTo: self.view.topAnchor, constant: 50)
稍后使用激活它
NSLayoutConstraint.activate([topConstraint])
最后,當你需要刪除常量時簡單說
button.removeConstraint(topConstraint)
然后將新約束添加為
NSLayoutConstraint.activate([
topBtn.topAnchor.constraint(equalTo: self.view2.topAnchor, constant: 50)
])
button.layoutIfNeeded()
關於button.layoutIfNeeded的用法請參閱UpHoldoerOfTruth下面的評論
而已。 希望能幫助到你
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.