为了隐藏子视图,UIStackView
最好将其设置isHidden
为true或者使用removeArrangedSubview
和删除父视图中的子视图Stackview
吗?
我正在使用Stackview在tableView单元格中排列我的UIElements.我目前有一个父StackView和一个childStackview安排在里面.需要根据条件显示或隐藏子视图.isHidden
当条件变为true时,我将子视图的属性设置为true.
当我滚动并且新单元格变得可见时,我在控制台中收到以下消息.该应用程序不会崩溃.
NSLayoutConstraint:0x600000093470'UISV-canvas-connection'UIStackView:0x7fd4527201b0.top == UILabel:0x7fd452720370'Day Off - Rest and Sleep ...'.top(active)
在UIViewAlertForUnsatisfiableConstraints上创建一个符号断点,以便在调试器中捕获它.在列出的UIView上的UIConstraintBasedLayoutDebugging类别中的方法
也可能有所帮助.[LayoutConstraints]无法同时满足约束.可能至少下列列表中的一个约束是您不想要的约束.
试试这个:
看看每个约束,并试图找出你不期望的;
找到添加了不需要的约束或约束的代码并修复它.("","","","","","","")
将尝试通过打破约束来恢复
要回答您的第一个问题,如果您不需要取消隐藏子视图,最合乎逻辑的做法是使用删除它removeArrangedSubview(UIView)
.您可能知道,只要添加,删除,插入或隐藏/取消隐藏视图,堆栈视图就会自动更新其布局.
您在控制台中收到的有关约束的警告可能与您现在为子视图实施的任何内容相关,也可能与之无关.你有没有提到它,因为你认为它可能是相关的?
希望有所帮助.