所以我在控制器中有这样的约束,例如:
someView.widthAnchor.constraint(equalToConstant: view.bounds.width).isActive = true
现在,我在
willLayoutSubviews
中添加了此约束以在设备旋转时更新它。但是它似乎并没有更新,甚至更像是添加了另一个宽度约束,这当然与旧的宽度约束冲突。
现在我真的不知道更新此宽度约束的合适解决方案,但是在我看来,我需要先删除约束然后再进行设置。
如果我像这样测试:
someView.constraints.forEach {
someView.removeContraint($0)
}
这像预期的那样工作,只是它删除了一些我不想删除的约束,所以也没有解决方案。
提前致谢!
最佳答案
溶胶1
将宽度约束钩为IBOutlet
并在这样的代码中更改其常量
self.widthCon.constant = //value
self.view.layoutIfNeeded()
溶胶2
删除带有标识符的约束
someView.constraints.forEach {
if $0.identifier == "set_id" {
someView.removeConstraint($0)
someView.widthAnchor.constraint(equalToConstant: view.bounds.width).isActive = true
}
}
关于ios - 在设备方向上更新widthAnchor,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50320589/