作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有两个 UI 布局约束,它们在设计上相互冲突。一次只能有一个处于事件状态。
在UIViewController 的
方法updateConstraintsIfNeeded
中,我有以下代码根据数据模型的状态在两个约束之间切换。
override func updateConstraintsIfNeeded() {
super.updateConstraintsIfNeeded()
if question?.thumbURL != nil {
showAttachmentConstraint.active = true
hideAttachmentConstraint.active = false
} else {
showAttachmentConstraint.active = false
hideAttachmentConstraint.active = true
}
}
这按预期工作,但我在调试输出中收到了这个熟悉的警告:
Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the following list is one you don't want. ...
显然,当语句 showAttachmentConstraint.active = true
被执行时,它暂时与当时仍处于事件状态的 hideAttachmentConstraint
发生冲突。
是否可以使这个切换操作成为原子操作?我希望 UITableView
中有类似 beginUpdate
和 endUpdate
的东西。
最佳答案
您可以将其中一个冲突约束的优先级从 1000 改为 999。这样您在设计时就不会遇到任何问题。
关于ios - 如何在两个自动布局约束之间切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33867839/
我是一名优秀的程序员,十分优秀!