我有一个屏幕,其中包含三个组件:Header
,CollectionView
和bottomView
。我只想在某些情况下显示底视图。我尝试为该底视图设置isHidden
属性,但该属性隐藏了视图,但collectionView
没有占用空间。如果要隐藏底视图,我想调整collectionView
来占用剩余空间。请指出正确的方向。
答案 0 :(得分:1)
连接底视图的高度约束并以此来切换隐藏/显示
self.bottomHeight.constant = show ? 100 : 0
self.view.layoutIfNeeded()
答案 1 :(得分:0)
isHidden属性仅更改视图的可见性,而不更改约束。
您可以将collectionview底部约束连接到底部视图的顶部,然后将底部视图底部约束连接到父视图的底部。
然后获取bottomView的高度约束的IBOutlet并按照以下代码更改其常量:
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *bottomContraint;
...
bottomContraint.constant = 0 // To hide
yourView.layoutIfNeeded()
答案 2 :(得分:0)
尝试将底视图的高度约束设置为0。这样,它将隐藏底视图,并且集合将根据约束调整大小。
请注意,您应该赋予以下约束: 标头:要进行预览的顶部尾部空间(或safeAreaLayoutGuide)和固定高度。 集合:前导到超级视图,顶部到标题。
页脚:将导览图的底部引导至超级视图(或更好:safeAreaLayoutGuide),要收集的顶部空间以及固定高度。
您需要更新footerview的 FixedHeight 约束的常量。
答案 3 :(得分:0)
使用UIStackView解决了该问题。谢谢大家。