UITableView嵌套UICollectionView自适应高度

19 阅读1分钟

tatableview处理:

v.estimatedRowHeight = 100

v.rowHeight = UITableView.automaticDimension

且代理高度不设置。

在tableviewcell里面初始化UICollectionView的时候指定一个高度collection.snp.makeConstraints { make in

make.top.left.right.equalToSuperview()

make.height.equalTo(100)

}

在tableviewcell里面重写:

override func systemLayoutSizeFitting(_ targetSize: CGSize, withHorizontalFittingPriority horizontalFittingPriority: UILayoutPriority, verticalFittingPriority: UILayoutPriority) -> CGSize {

let size = super.systemLayoutSizeFitting(targetSize, withHorizontalFittingPriority: horizontalFittingPriority, verticalFittingPriority: verticalFittingPriority)

self.targetCollectV.layoutIfNeeded()

let height = targetCollectV.collectionViewLayout.collectionViewContentSize.height

targetCollectV.snp.updateConstraints { make in

make.height.equalTo(height)

}

return CGSizeMake(size.width, height)

}