我有以下UITableViewCell
,根据条件redView.heightConstraint.constant = 0
,这可以正常工作。
但是底部空间结果是+ b = 20 ,其中
a = 10 between green an red view
b = 10 between red and bottom of the superview
当redView的高度设置为0时,预期的底部空间应 10. 当redView高度设置为0时,如何设置约束以达到预期的底部边距10 ?
答案 0 :(得分:5)
更改红色视图的高度不会改变其相对于超视图底部的位置,因此绿色视图首先在该视图的顶部有10 pix
边距,另外还有{{} 1}}到超级视图的底部。
10 pix
redView.heightConstraint.constant = 0
将这两个变化放在一起,红色视图将有效地成为其超视图底部的零高度视图;绿色视图也会效仿。
redView.bottomConstraint.constant = 0
占位符(灰色矩形)锚定在superview的底部;它包含红色视图和垂直间隔。蓝色视图不再相对于红色视图的顶部而是与其占位符的顶部间隔开。这个解决方案涉及更少的代码行,交易的资源稍微复杂一些。
无论哪种方式,您可以在首次加载视图时存储Storyboard资源placeholder.heightConstraint.constant = 0
以避免硬编码:
constant