2017-07-12 8 views
1

UIViewControllerの内部にはUICollectionViewが埋め込まれています。必要条件は、UICollectionViewの高さを常に画面サイズの半分に等しくすることです。これまでに試されたことは次のとおりです。UICollectionViewのサイズを画面サイズの要素として変更するにはどうすればよいですか?

override func viewWillAppear(_ animated: Bool) { 
    self.caCollectionView.frame.size.width = self.view.frame.size.width 
    self.caCollectionView.frame.size.height = self.view.frame.size.height/2 
} 

これは、ビルドと実行時には効力を発揮していないようです。 見つからないことはありますか? 助けてください。前もって感謝します。

スクリーンショットが追加さ:ピンクの領域はUIViewControllerと白の面積がviewDidLayoutSubviewsに常にUICollectionView

enter image description here

+2

電流出力/スクリーンショットを表示します。 –

+0

@Imad更新された出力/スクリーンショットをご覧ください。返信ありがとうございます。 –

+1

制約を使用していますか? – anhtu

答えて

2

よう

はあなたにも底面図を上に移動しますか?

override func viewWillAppear(_ animated: Bool) { 
    self.caCollectionView.frame.size.width = self.view.frame.size.width 
    self.caCollectionView.frame.size.height = self.view.frame.size.height/2 
    self.pickAnotherView.frame.origin.y = self.caCollectionView.frame.origin.y+self.caCollectionView.frame.size.height 
    self.pickAnotherView.frame.height = self.view.frame.height-self.caCollectionView.frame.size.height 
} 

これは制約付きでストーリーボード上で行うことができます。

  1. セット0.5に等しい高さenter image description here
  2. セット乗数(ビューの高さの半分)enter image description here
+0

あなたの答えに感謝します。それはとても助けになりました。 –

+0

非常にお手伝いします。 :) – Codus

1

更新フレームで、代わりにフレームの境界を使用しています。

override func viewDidLayoutSubviews() 
    { 

     super.viewDidLayoutSubviews() 
     self.caCollectionView.frame.size.width = self.view.bounds.size.width 
     self.caCollectionView.frame.size.height = self.view.bounds.size.height/2 
    } 
+0

[@Jaydeep Vyas](https://stackoverflow.com/users/6028575/jaydeep-vyas)応答いただきありがとうございます。あなたのコードごとに更新しようとしましたが、同じ出力を得ています。私が得ている出力スクリーンショットを参照してください。元の投稿で更新されています。 –

+0

@asdiu画像の数が少なくて済むと思います。画像の数が少ない場合は、コレクションビューのセルサイズを大きくする必要があります。 –

+0

は間違いなく試してみます。ありがとうございました。 –

関連する問題