更改UIView约束高度会带来其子视图的约束警告

时间:2018-01-24 04:56:22

标签: ios swift layout

我有一个带有子视图的UIView parentView。所有约束都设置正确。

当我想parentView隐藏heightConstraint.constant = 0时,heightConstraint.constant = 200显示[LayoutConstraints] Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. 。我会收到警告:

subviews

我可以得到它,因为heightConstraint约束不满足新高度。

通过更改parentView.isHidden并同时满足子视图约束,可以实现这一点吗? (我可以通过dispatch_semaphore_wait(writeSemaphore!, DISPATCH_TIME_FOREVER) 实现它,只是不想用这种方式)

2 个答案:

答案 0 :(得分:1)

这是因为您的子视图包含leadingtrailingtopbottom constant <{1}} >

现在让10个方面parentViewleadingtrailingtop说吧  当您设置bottom 0子视图时,没有足够的空间来满足边的顶部和底部的10个值。所以它显示错误

尝试优先考虑低至heighttop,或者如果不起作用,请将所有子视图高度设为&gt; 0低优先级

或使用Stackview(垂直)进行子视图并使用bottom代替顶部和底部

希望你明白为什么会发生这件事

答案 1 :(得分:1)

我收到同样的警告,我做了同样的事情@prashanttukadiya建议。

将storyboard中高度约束的值减1,默认为1000:

enter image description here

并删除了警告。