我有一个带有UICollectionView
的viewController,我正在设置标头,我需要它们的高度可以动态计算。我对collectionView(_:layout:referenceSizeForHeaderInSection:)
的实现与此类似:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize {
let width = collectionView.frame.size.width
customHeader.layoutIfNeeded()
let height = customHeader.container.systemLayoutSizeFitting(UILayoutFittingCompressedSize).height
return CGSize(width: width, height: height)
}
我需要知道此调用何时完成以及标头的大小已设置,以便触发我需要执行的其他一些操作。
我已经看到viewController的viewDidLoad()
和viewDidLayoutSubviews()
方法都在另一个方法之前被调用。有什么方法可以满足我的需求?