NNi*_*ikN 2 xcode uitableview ios autolayout
我有以下UITableViewCell,根据条件,这redView.heightConstraint.constant = 0,工作正常.
但是底部空间结果是+ b = 20,其中
a = 10 between green an red view
b = 10 between red and bottom of the superview
Run Code Online (Sandbox Code Playgroud)
当redView的高度设置为0时,预期的底部空间应该是10. 当redView高度设置为0时,我应该如何设置约束以达到预期的底部边距10?
更改该红色视图的高度不会改变其相对于超视图底部的位置,因此绿色视图首先具有10 pix该视图顶部的边距,以及超视图10 pix底部的附加边缘.
redView.heightConstraint.constant = 0redView.bottomConstraint.constant = 0将这两个变化一起进行,红色视图将有效地成为其超视图底部的零高度视图; 绿色视图也会跟风.
placeholder.heightConstraint.constant = 0占位符(灰色矩形)锚定在superview的底部; 它包含红色视图和垂直间隔.蓝色视图不再相对于红色视图的顶部而是与其占位符的顶部间隔开.该解决方案涉及较少的代码行,用于稍微复杂的资源交易.
无论哪种方式,您可以在constant首次加载视图时存储Storyboard资源以避免硬编码:
// At the class level
let originalHeight = someView.heightConstraint.constant
// At the method level, toggle
someView.heightConstraint.constant = (fullHeight) ? originalHeight : 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
397 次 |
| 最近记录: |