2016-05-11 5 views
0

コレクションビューセルの横向きの向きに問題が発生しました。アプリが肖像画になっているときは、2行である1行あたりのセルの数が正しく表示されます。ただし、アプリを横向きに回転させると、1行に1セル表示されます。ここで私が得たものの画面です:Swiftでのコレクションビューの横向き

ポートレート: enter image description here

景観: enter image description here

ここでは、セルのサイズを追加するための私のコードだ:

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { 

     var screenSize = CGFloat() 
     if UIDevice.currentDevice().orientation.isLandscape.boolValue { 
      screenSize = UIScreen.mainScreen().bounds.size.width 
     } 
     else { 
      screenSize = UIScreen.mainScreen().bounds.size.width 
     } 

     let cellWidth = screenSize/2.0 

     return CGSizeMake(cellWidth, cellWidth) 
    } 

答えて

4

ここでできることは何ですか

let orientation = UIApplication.sharedApplication().statusBarOrientation 
if(orientation == .LandscapeLeft || orientation == .LandscapeRight) 
{ 
    return CGSizeMake((yourCollectionView.frame.size.width-10)/2, (yourCollectionView.frame.size.height-10)/2) 
} 
else{ 
    return CGSizeMake((yourCollectionView.frame.size.width-5)/2, (yourCollectionView.frame.size.height-10)/3) 
} 

このコードが達成すること: - ビューが縦長の場合は2列と3​​行、横長の場合は3列と2行が表示されます。コードで見られる控除は、連続する2つのセルの間隔です。したがって、3列がある場合、控除は15であり、2列がある場合、2セル間の間隔が5であると仮定すると、控除は10となります。同じ行になります。

でも画面サイズを使用することはできますが、コレクションビューに自動レイアウトの制約があり、結果が同じになるように画面のサイズに合わせることができます。私はこれがあなたが探していたものだと願っています。

+0

こんにちは、これは私が探しているものの中で最も近いですが、私はそれが2列の肖像画と風景と同じであることを望みます。 –

+0

簡単に達成できます。私はあなたのために私の答えを更新します。しかし、私はそれが良く見えるとは思わない。 –

関連する問題