【发布时间】:2019-07-30 05:11:17
【问题描述】:
我有一个寻呼机全屏collectionview。当设备旋转时,collectionview 的第一个单元格适合在横向和纵向模式下的 collectionview。但是当我在collectionview上滚动下一个单元格时,它显示了两个单元格。而且它不适合所有屏幕。尽管我滚动collectionview并旋转,如何使所有单元格大小适合collectionview。我尝试了 invalideLayout() 和很多方法。但我达不到。只是我想要的,collectionviewcell 在任何情况下都适合整个屏幕,尽管滚动和旋转。
P.S collectionviewcell size 应该是整个屏幕大小。
public override func willTransition(to newCollection: UITraitCollection, with coordinator: UIViewControllerTransitionCoordinator) {
if UIDevice.current.orientation.isLandscape,
let layout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout {
let width = view.frame.height
layout.itemSize = CGSize(width: width, height: UIScreen.main.bounds.width)
layout.invalidateLayout()
} else if UIDevice.current.orientation.isPortrait,
let layout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout {
let width = view.frame.width
layout.itemSize = CGSize(width: width , height: UIScreen.main.bounds.height)
layout.invalidateLayout()
}
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let width = view.frame.size.width
return CGSize(width: width , height: UIScreen.main.bounds.height)
}
【问题讨论】:
-
你在
sizeForItemAtIndexPath写了什么? -
可以分享截图吗?
-
我添加了我的问题@iPeter
-
好的。检查。
-
你想要什么滚动方向?水平的还是垂直的?
标签: ios swift uicollectionview uicollectionviewcell uicollectionviewlayout