我从设备库中将一些图像加载到CollectionView单元格中(单元格覆盖了所有CollectionView,单元格只有UIImageView覆盖了所有单元格。我正在以编程方式更改CollectionView的高度限制,如:
let screenHeight = self.view.frame.height
ilanImageHeight.constant = screenHeight / 2 // This is Collectionview height constraint
首先在情节提要中声明CollectionView的高度为510,以编程方式进行更改。
CollectionView的高度会根据视图高度自动更改。这里没有问题。但是CollectionView的单元格和UIImageview不会更改,因此takes the previous height value which is 510
不会显示图像的一部分。
我也尝试:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize
{
return CGSize(width: 100, height: 100)
}
完成工作。单元格仍具有以前的Collectionview的高度值,该高度值已在情节提要中声明(510)
如何解决此问题?
尝试:
class VC: UICollectionViewdelegate, UICollectionViewDelegateFlowLayout {
override func viewDidLoad() {
super.viewDidLoad()
let layout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout
layout?.estimatedItemSize = .init() // this is important.
}
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize
{
return CGSize(width: 100, height: 100)
}