在 Swift 中以编程方式更新约束的常量属性?

Posted

技术标签:

【中文标题】在 Swift 中以编程方式更新约束的常量属性?【英文标题】:Update the constant property of a constraint programmatically in Swift? 【发布时间】:2015-01-24 15:54:50 【问题描述】:

我想为一个对象设置动画,所以我声明了一个约束并将其添加到视图中。然后我在UIView 动画中更新约束的constant 属性。为什么这段代码不移动对象?

UIView.animateWithDuration(1, animations: 
     myConstraint.constant = 0   
     self.view.updateConstraints(myConstraint)
)

【问题讨论】:

【参考方案1】:

为了声明动画,您不能重新定义约束并调用updateConstraints。您应该更改约束的constant 并遵循以下格式:

self.view.layoutIfNeeded()
UIView.animate(withDuration: 1) 
    self.sampleConstraint.constant = 20
    self.view.layoutIfNeeded()

【讨论】:

self.view.layoutIfNeeded() 正是我想要的!非常感谢。只是一个疑问..它是否也有某种性能影响? @MuditJaju 如果不在UITableView中,一般没有性能问题。

以上是关于在 Swift 中以编程方式更新约束的常量属性?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 中以编程方式在水平线上设置约束? [关闭]

在 Swift 中以编程方式添加约束不起作用

如何在 ios swift 中以编程方式创建自动布局等宽约束?

有啥方法可以在 Swift 中以编程方式获取所有应用的自动布局约束

在 Swift 中以编程方式设置 XIB 文件的约束

未能尝试在 SWIFT 中以编程方式在滚动视图中添加 UIView 约束