我有一个 UICollectionView,它的宽度正好是 7 个单元格,中间没有填充。我通过添加没有中间或行间距的流布局并计算宽度来完成此操作,如下所示:
public func collectionView(
_ collectionView: UICollectionView,
layout collectionViewLayout: UICollectionViewLayout,
sizeForItemAt indexPath: IndexPath
) -> CGSize {
return CGSize(
width: self.frame.width / CGFloat(7),
height: self.frame.height - headerHeight
)
}
Run Code Online (Sandbox Code Playgroud)
这在我的 iPhone 应用程序中运行得非常好
未启用旋转的地方。在 iPad 上,当处于纵向模式时,效果很好。
旋转时,首先应用程序不会重绘,我尝试使Layout无效,但这并没有解决问题。我必须向下滚动,然后得到以下布局
当我点击一个单元格时,它会重新绘制,但添加了填充,将第七个单元格向下推到另一行。
我希望重新绘制单元格,以便当应用程序在分割视图中旋转或放大和缩小时,所有 7 个单元格都可以放在一行上。我应该如何正确处理这个问题?