Son*_*les 2 rotation ios uicollectionview swift
我有一个 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 个单元格都可以放在一行上。我应该如何正确处理这个问题?
将其添加到您的UIViewController
班级中
当您更改设备方向时,它会自动调整您的布局。
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
guard let columnLayout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout else {
return
}
columnLayout.invalidateLayout()
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1748 次 |
最近记录: |