我正在使用UICollectionView
創建全屏圖像庫。當用戶旋轉設備,我執行更新到UICollectionView
內Swift viewWillTransition not called
func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator)
我模態呈現這個UIViewController
,有一個UICollectionView
佔據整個屏幕。在viewDidLoad
,我創建了流佈局:
let flowLayout = UICollectionViewFlowLayout()
flowLayout.scrollDirection = .horizontal
flowLayout.minimumInteritemSpacing = 0
flowLayout.minimumLineSpacing = 0
photosCollectionView.isPagingEnabled = true
photosCollectionView.setCollectionViewLayout(flowLayout, animated: true)
我也有作爲大小:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return photosCollectionView.frame.size
}
當我轉動我的設備,viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator)
不會被調用,這會導致UICollectionViewLayout
不更新。雖然我旋轉設備,我得到的消息:
The behavior of the UICollectionViewFlowLayout is not defined because: the item height must be less than the height of the UICollectionView minus the section insets top and bottom values, minus the content insets top and bottom values.
我讀過網上,我可以添加:
self.automaticallyAdjustsScrollViewInsets = false
到UIViewController
,但也沒有影響。沒有內容或部分插入UICollectionView
。
我也在函數中調用了super.viewWillTransition
。任何人都可以幫助我什麼可能導致這個問題?
錯誤消息提到「物品高度」。我沒有看到你的代碼確定。你能證明嗎? – matt
當我設置大小時,就是高度和寬度。我在'IndexPath' ='photosCollectionView.frame.size'設置'sizeForItem'。 –
好的,但如果你在錯誤的時間說,我可以想象,你可能會得到一個尺寸,其中一個或兩個尺寸比集合視圖最終變得更大。 – matt