集合单元格大小根据下载的图像而变化
Collection cell size changes according to downloaded image
let sectionInsets = UIEdgeInsets(top: 50.0,left: 20.0,bottom: 50.0,right: 20.0)
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let paddingSpace = sectionInsets.left * (itemsPerRow + 0.5)
let availableWidth = view.frame.width - paddingSpace
let widthPerItem = availableWidth / itemsPerRow
let size = CGSize(width: widthPerItem, height: widthPerItem)
return size
}
这是我的代码。有人能告诉我为什么单元格的大小会根据下载的图像及其解决方案而变化吗?
我的调试器也有问题 - "Make a symbolic breakpoint at UICollectionViewFlowLayoutBreakForInvalidSizes to catch this in the debugger."
在 Interface Builder 中将 Estimate Size 设置为 None 和
覆盖函数 "willTransition(to newCollection: with coordinator:)" 如下:-
public override func willTransition(to newCollection: UITraitCollection, with coordinator: UIViewControllerTransitionCoordinator) {
let paddingSpace = sectionInsets.left * (itemsPerRow + 0.5)
let availableWidth = view.frame.width - paddingSpace
let widthPerItem = availableWidth / itemsPerRow
let size = CGSize(width: widthPerItem, height: widthPerItem)
super.viewWillTransition(to: size, with: coordinator)
coordinator.animate(alongsideTransition: { (context) in
self.imageCollectionView.collectionViewLayout.invalidateLayout()
}) { (context) in
}
}
let sectionInsets = UIEdgeInsets(top: 50.0,left: 20.0,bottom: 50.0,right: 20.0)
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let paddingSpace = sectionInsets.left * (itemsPerRow + 0.5)
let availableWidth = view.frame.width - paddingSpace
let widthPerItem = availableWidth / itemsPerRow
let size = CGSize(width: widthPerItem, height: widthPerItem)
return size
}
这是我的代码。有人能告诉我为什么单元格的大小会根据下载的图像及其解决方案而变化吗?
我的调试器也有问题 - "Make a symbolic breakpoint at UICollectionViewFlowLayoutBreakForInvalidSizes to catch this in the debugger."
在 Interface Builder 中将 Estimate Size 设置为 None 和 覆盖函数 "willTransition(to newCollection: with coordinator:)" 如下:-
public override func willTransition(to newCollection: UITraitCollection, with coordinator: UIViewControllerTransitionCoordinator) {
let paddingSpace = sectionInsets.left * (itemsPerRow + 0.5)
let availableWidth = view.frame.width - paddingSpace
let widthPerItem = availableWidth / itemsPerRow
let size = CGSize(width: widthPerItem, height: widthPerItem)
super.viewWillTransition(to: size, with: coordinator)
coordinator.animate(alongsideTransition: { (context) in
self.imageCollectionView.collectionViewLayout.invalidateLayout()
}) { (context) in
}
}