UICollectionView
を使用してフルスクリーンの画像ギャラリーを作成しています。ユーザがデバイスを回転すると、私はモーダルこのUIViewController
を提示し、UICollectionView
全画面を占有有するSwift viewWillTransitionが呼び出されない
func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator)
内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.
::私は、デバイスを回転させながら、私はメッセージを取得行いませんUIViewController
へ
self.automaticallyAdjustsScrollViewInsets = false
を、それは何も影響を与えていました。 UICollectionView
にはコンテンツまたはセクションのインセットはありません。
私はまた、super.viewWillTransition
という機能を呼び出しています。この問題を引き起こしている可能性のあるものについて誰でも助けてくれますか?
「アイテムの高さ」に関するエラーメッセージが表示されます。私はそれを決定するあなたのコードが表示されません。あなたはそれを見せてもらえますか? – matt
サイズを設定すると、その高さと幅です。 'IndexPath' =' photosCollectionView.frame.size'に 'sizeForItem'を設定しました。 –
さて、あなたが間違った時にそれを言うなら、どちらか一方または両方の次元がコレクションビューよりも大きいサイズを得るかもしれないと想像することができます。 – matt