以编程方式获取集合视图协议方法之外的集合视图部分的高度



我有一个聊天应用程序,聊天集合视图是在一个我无法更改的pod文件中创建的。每条聊天信息都是集合视图中的一个部分。我可以通过调用myCollectionView.numberOfSections.来确定部分(聊天消息(的数量

我想确定collectionView中每个部分的高度。如何在不使用collectionView协议方法的情况下以编程方式完成此操作。

您可以尝试以下方式:

class ThirdPartyViewController: UIViewController  {
var collectionView: UICollectionView!
}
class YourViewController: UIViewController, UICollectionViewDelegateFlowLayout {
let vc = ThirdPartyViewController()
var collectionView: UICollectionView { return vc.collectionView }
var originDelegate: UICollectionViewDelegateFlowLayout { return vc as! UICollectionViewDelegateFlowLayout }
override func viewDidLoad() {
super.viewDidLoad()
collectionView.delegate = self
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize {
//return custom value
return CGSize(width: 100, height: 100)
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
//return origin value
return originDelegate.collectionView!(collectionView, layout: collectionViewLayout, sizeForItemAt: indexPath)
}
}

最新更新