ViewController中两个UIView的动态高度

我有以下ViewController,其中包含3个UIView和内容。红线是我的约束。

ViewController中两个UIView的动态高度

黑色的始终具有固定的高度。

红色的UIView内部有一个CollectionView,它会根据项目的不同而增长。

绿色是应该缩小的UITableView,具体取决于红色UICollectionView的大小。

我试图将红色(UICollectionView)的高度约束设置为大于或等于,绿色(UITableView)的高度约束设置为小于或等于,但是Swift告诉我设置斧头或高度值。

在ViewController中获取两个动态视图的正确方法是什么?

inzhatzi 回答:ViewController中两个UIView的动态高度

为CollectionView 高度创建 NSLayoutConstraint ,然后在 cellForItemAt 函数上设置高度

var collHeight:NSLayoutConstraint? //In class scope

将CollectionView的高度锚点分配给collHeight

collHeight = collectionView.heightAnchor.constraint(equalToConstant: 0)
collHeight!.isActive = true

然后在 cellForItemAt 函数上设置高度

   func collectionView(_ collectionView: UICollectionView,cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

        collHeight.constant = collectionView.contentSize.height
    }

它将根据项目计数扩展collectionview高度的大小。接下来,将tableview顶部锚点设置为collectionview底部锚点

本文链接:https://www.f2er.com/2672062.html

大家都在问