未调用CollectionView数据源和委托方法

时间:2015-01-01 11:42:18

标签: swift

未调用UICollectionView的数据源和委托方法。我有

class MessagesViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate {
 @IBOutlet weak var collectionView: UICollectionView!
 override func viewDidLoad() {
  super.viewDidLoad()
  self.collectionView.dataSource = self
  self.collectionView.delegate = self

功能

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell

没有被调用。

2 个答案:

答案 0 :(得分:2)

由于声誉低,我无法撰写评论,但我的猜测是你在viewDidLoad()方法中设置了dataSource和delegate。也许通过控件从您的CollectionView拖动到包含它的ViewController来挂钩dataSource并在storyboard中委派。在viewDidLoad()中设置dataSource和delegate之后,您还可以尝试使用collectionView.reloadData()重新加载collectionView数据。

答案 1 :(得分:0)

SWIFT 3 - 在swift 3中,委托方法稍有改变。由于这些变化,我遇到了同样的问题。请找到正确的委托方法

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

    //Do here
}

override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath:IndexPath) -> UICollectionViewCell {
   //Do here
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {

  //Do here
}