2017-05-03 8 views
1

私の写真ライブラリを表示するコレクションビューがあります。セルを選択すると、セルフレームがフルスクリーンサイズの別のコレクションビューに分割されます。コレクションビューの回転後のレイアウト

肖像画の向きは問題ありません。しかし、私が風景に回転すると、何かがうんざりします。

viewWillTransitionがない場合、itemSizeは次のように再構成されません。 viewWillTransition

enter image description here

collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSizeが呼び出され、itemSizeは作り直さ。しかし、それはまだ期待されていない、任意の提案ですか?

enter image description here

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { 
    super.viewWillTransition(to: size, with: coordinator) 
    collectionView?.collectionViewLayout.invalidateLayout() 
} 

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 
    return self.view.bounds.size 
} 

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat { 
    return 0 
} 

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat { 
    return 0 
} 
+0

を持つクラスを拡張しますか。? – KKRocks

+0

segueを実行したので、そのクラスにコードを追加する必要があるためです。 – KKRocks

答えて

0

あなたはcollectionviewのコードを作らなかった理由UICollectionViewDelegateFlowLayout

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 
    return CGSize(width: UIScreen.main.bounds.size.width, height: UIScreen.main.bounds.size.height-20) 
} 
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat{ 
    return 0 
} 
関連する問題