什么定义了TableViewCell内CollectionViewCell的大小?

时间:2019-06-01 11:44:45

标签: ios uitableview uicollectionview

我正在实现UITableView,其中包含UICollectionView。当然,我的UITableViewCell有一个UICollectionView,但是问题是我不知道如何配置UICollectionViewCell的高度。我尝试设置高度约束以查看UICollectionViewCell内部的内容,但这并没有影响。发挥尺寸的方法有很多:

  • UITableViewCell的句柄大小
  • UICollectionView内将高度限制设置为UITableViewCell
  • UICollectionViewDelegateFlowLayout的使用方法
  • 设置高度约束以在UICollectionViewCell内部查看(我的方法)

最后一种方法最适合我,但我想知道为什么它不起作用。这是UICollectionView的配置:

lazy var booksCollectionView: UICollectionView = {
    let layout = UICollectionViewFlowLayout()
    layout.scrollDirection = .horizontal
    var booksCollectionView = UICollectionView(frame: contentView.bounds, collectionViewLayout: layout)
    booksCollectionView.backgroundColor = .clear
    booksCollectionView.translatesAutoresizingMaskIntoConstraints = false
    return booksCollectionView
}()

约束:

booksCollectionView.trailingAnchor.constraint(equalTo: contentView.trailingAnchor).isActive = true
    booksCollectionView.leadingAnchor.constraint(equalTo: contentView.leadingAnchor).isActive = true
    booksCollectionView.topAnchor.constraint(equalTo: contentView.topAnchor).isActive = true
    booksCollectionView.bottomAnchor.constraint(equalTo: contentView.bottomAnchor).isActive = true

UICollectionView内的单元格仅包含UIView

bookView.leadingAnchor.constraint(equalTo: contentView.leadingAnchor).isActive = true
    bookView.trailingAnchor.constraint(equalTo: contentView.trailingAnchor).isActive = true
    bookView.topAnchor.constraint(equalTo: contentView.topAnchor).isActive = true
    bookView.heightAnchor.constraint(equalToConstant: 440).isActive = true 

更改bookView的高度完全没有影响。为什么会这样?我应该如何处理UICollectionViewCell的高度?

1 个答案:

答案 0 :(得分:1)

符合协议UICollectionViewDelegateFlowLayout,并实施以下方法: collectionView(_:layout:sizeForItemAt:)