2017-08-14 8 views
-1

毎回5 * 8の行列でUICollectionViewを作成したいと思います。 (5行8列を意味します)。 そしてCollectionview制約は以下のとおりです。スーパーに大手スウィフトで5 * 8コレクションビューを作成する方法

= 10

は= 150

Collectionビュー結果をスーパーする= 90

ボトムをスーパーする= 10

トップスーパーに後続すべきです表示形式:

enter image description here 結果表示

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 

     let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath as IndexPath) as! NavigateCollectionViewCell 

     cell.questionLbl.text = items[indexPath.row] as? String 
     cell.backgroundColor = UIColor.cyan 

     return cell 
    } 

    // MARK: - UICollectionViewDelegate protocol 

    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { 
     // handle tap events 
     print("You selected cell #\(indexPath.item)!") 
    } 

これで助けてください。

+0

self.view.frame.size.width(スペースあり)/ 5 –

+0

何を試しましたか?あなたの仕様を書いただけで、誰かがあなたのためにコードを提供することを期待しているようです。 – Abizern

+0

あなたがコードを投稿する予定の場合は、質問に関連して試してみてください。セルを取得して選択を処理するメソッドは、コレクションビューのセルのレイアウトとは何の関係もありません。これはあなたの質問に関するものです。 – Abizern

答えて

2

あなたはアウト

let cellWidth : CGFloat = (self.view.frame.width - 20.0 - (5 * YOUR_CELLSPACING))/5.0 
let cellHeight : CGFloat = (self.view.frame.height - 260.0 - (8 * LINE_Spacing))/8.0 
let collectionViewLayout: UICollectionViewFlowLayout = (self.YOUR_COLLECTIONVIEW!.collectionViewLayout as! UICollectionViewFlowLayout) 

collectionViewLayout.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0) 

collectionViewLayout.itemSize = CGSize(width: cellWidth , height:cellHeight) 

これは、異なる高さと視野をもたらすことができると入れ欲求を作成することができます。

あなたは高さと幅と同じあなたを維持したいならば、あなたは単にに関して

collectionViewLayout.itemSize = CGSize(width: cellWidth , height:cellWidth) 

//身長

// UICollectioncellのように幅に対する

// UICollectioncellを行います幅のように

collectionViewLayout.itemSize = CGSize(width: cellHeight , height:cellHeight) 
0

あなたのコレクションビューの代理人

func numberOfSections(in collectionView: UICollectionView) -> Int { 
     return 8 
    } 

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
     return 5 
} 


func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: IndexPath) -> CGSize { 
     let cellWidth = (UIScreen.main.bounds.width - 20)/5 
     return CGSize(width: cellWidth, height: cellWidth); 
    } 

20の代わりに、マージン+セル間のスペースの先頭と末尾の合計値を指定できます。

関連する問題