2016-07-21 15 views
1

このトピックに関する他の質問は私にとってはうまくいきません。Swift:UICollectionViewControllerにはセルが表示されません

私はプログラム的にストーリーボード

ノートであるUIViewControllerからUICollectionViewControllerを提示しています、にも関わらず、いかなる細胞が出現していません:@IBActionセグエはちょうどボタンアクション

これはUIViewControllerです:

@IBAction func segue(sender: AnyObject) { 
    let collectionview = CollectionViewController(collectionViewLayout: UICollectionViewLayout()) 
    self.presentViewController(collectionview, animated: true, completion: nil) 
} 

次に、UICollectionViewController

import UIKit 

private let reuseIdentifier = "Cell" 

class CollectionViewController: UICollectionViewController, UICollectionViewDelegateFlowLayout { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     collectionView?.backgroundColor = UIColor.brownColor() 
     self.collectionView!.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier) 
    } 


    // MARK: UICollectionViewDataSource 

    override func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int { 
     return 1 
    } 


    override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
     return 10 
    } 

    override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 
     let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) 
     cell.backgroundColor = UIColor.blueColor() 
     return cell 
    } 

} 

私は明らかな何かを紛失しているはずです。私のためにそれを指摘する人に事前に感謝します。

+0

セルサイズを使用するために必要なとき、私はUICollectionViewLayoutを使用しましたか?また、コレクションビューのデリゲートとデータソースの設定もチェックしてください。 –

+0

@EvgenyKarkanは残念ながらそれは問題ではなく、デリゲートとデータソースはUICollectionViewControllerであるため、設定する必要はありません。 –

答えて

1

だから私はそれでジャブを取り、仕事にこれを得た:

あなたのviewDidLoad()メソッドで

、この試してみてください。私は問題がためUICollectionViewFlowLayoutを指定しないで横たわっていたと思います

let screenSize = UIScreen.mainScreen().bounds 
    let screenWidth = screenSize.width - 25 

    let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout() 
    layout.sectionInset = UIEdgeInsets(top: 5, left: 5, bottom: 5, right: 5) 
    layout.itemSize = CGSize(width: screenWidth/4, height: screenWidth/4) 
    layout.minimumInteritemSpacing = 5 
    layout.minimumLineSpacing = 5 

    self.collectionView = UICollectionView(frame: CGRectMake(0, 0, self.view.frame.width, self.view.frame.height), collectionViewLayout: layout) 
    self.collectionView?.backgroundColor = UIColor.brownColor() 
    self.collectionView!.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier) 

を細胞。これにより、各セル間に5ピクセルの間隔が追加されますが、必要に応じて変更できます。お役に立てれば!

+0

回答ありがとうございます。これはうまくいきますが、非常に長いです。私の答えを読む私はちょうど私がそれを固定した1つの単語の間違いを見るために投稿しました:) –

+0

素晴らしい、あなたがそれを解決してうれしい!ちょっと残念だったので、ちょっと残念だったので、ちょっと残念だったので、ちょっと残念でした。 – riverhawk

+0

とにかくあなたの答えを投稿してくれてありがとう、ありがとうございました –

7

私は問題を理解しました。少しばかげています。新しいUICollectionViewControllerを提示すると、私はそれを間違って初期化しました。私は行方不明UICollectionViewFlowLayout

@IBAction func segue(sender: AnyObject) { 
    let collectionview = CollectionViewController(collectionViewLayout: UICollectionViewFlowLayout()) 
    self.presentViewController(collectionview, animated: true, completion: nil) 
} 
+0

うわーありがとう!!私はこの愚かな過ちもした。あなたは私の時間を救った!!ありがとう! –

関連する問題