【发布时间】:2017-05-31 21:49:49
【问题描述】:
为了隐藏UIStackView 中的子视图,最好将isHidden 设置为true 还是使用removeArrangedSubview 并从父Stackview 中删除子视图?
我正在使用 Stackview 将我的 UIElements 排列在 tableView 单元格中。
我目前有一个父 StackView 和一个 childStackview 安排在里面。需要根据条件显示或隐藏子视图。当条件变为真时,我将子视图的isHidden 属性设置为真。
当我滚动并看到新的单元格时 我在控制台中收到以下消息。应用不会崩溃。
NSLayoutConstraint:0x600000093470 'UISV-canvas-connection' UIStackView:0x7fd4527201b0.top == UILabel:0x7fd452720370'休息日 - 休息和睡眠 ...'.top(活动)
在 UIViewAlertForUnsatisfiableConstraints 创建一个符号断点,以便在调试器中捕获它。
<UIKit/UIView.h> 中列出的 UIView 上的 UIConstraintBasedLayoutDebugging 类别中的方法也可能会有所帮助。
[LayoutConstraints] 无法同时满足约束。
可能以下列表中的至少一个约束是您不想要的。
试试这个:
- 查看每个约束并尝试找出您不期望的;
- 找到添加了不需要的约束的代码并修复它。 ( "", "", "", "", "", "", “” )
将尝试通过打破约束来恢复
【问题讨论】:
-
像大多数关于哪种方法更好的问题一样,答案将取决于您的具体情况。你能提供更多细节吗?
-
谢谢吉姆,我已经在另一个中添加了一个 ParentStackView 和一个 ChildStackview。我需要根据条件隐藏 childstackview。当我将子 stackview 的 isHidden 设置为 true 时,我在 xcode 的控制台日志中收到以下消息。但它不会使应用程序崩溃。我收到此错误无法同时满足约束。以下列表中的至少一个约束可能是您不想要的。将尝试通过打破约束来恢复
-
Jay,继续编辑您的问题并在此处添加该详细信息,然后人们会因为没有任何详细信息而对其投反对票。另外,假设子堆栈视图消失了(您将其隐藏或使用 removeArrangedSubview)。你希望它回来吗?
-
感谢您帮助我,Jim,:) 这是我的第一个问题,所以学习如何提问,以便社区有所有信息可以回复。不,吉姆,一旦隐藏,我就不需要它回来了。
标签: ios swift swift3 uistackview