为什么我的UICollectionViewController没有显示任何内容?

时间:2017-07-26 15:06:13

标签: swift uicollectionview

我正在尝试让UICollectionViewController显示一个单元格网格(我稍后会添加文本,如果可能的话可能是textViews)。我有:

class GridViewController : UICollectionViewController{

    //(NOW GONE) @IBOutlet weak var gridViewTable = UICollectionViewController()

    let arr1 : [String] = []
    let arr2 : [String] = []


    override func viewDidLoad(){
        super.viewDidLoad()
        self.collectionView!.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "gridCell")


    }

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


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




    func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell{
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "gridCell", for: indexPath as IndexPath)
        cell.backgroundColor = UIColor.red
        return cell
    }
}

我使用界面构建器连接白色,其中单元格将转到gridViewTable。什么都没有出现,即使它运行和编译。我怎样才能显示细胞?

2 个答案:

答案 0 :(得分:1)

请使用以下代码:

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

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

override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "gridCell", for: indexPath as IndexPath)
    cell.backgroundColor = UIColor.red
    return cell
}

答案 1 :(得分:0)

你不需要UICollectionViewController的出口,班级本身就会照顾它。

此外,请确保Interface Builder中的视图控制器类在Identity Inspector中设置为GridViewController(最右侧窗格左侧的第3个选项卡)。