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

CollectionView datasource and delegate methods not being called

未调用 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

没有被调用。

由于信誉不佳,我无法发表评论,但我的猜测是您在 viewDidLoad() 方法中设置了数据源和委托。也许通过从 CollectionView 控制拖动到包含它的 ViewController 来挂钩数据源并在情节提要中委托。在 viewDidLoad() 中设置数据源和委托后,您还可以尝试使用 collectionView.reloadData() 重新加载 collectionView 数据。

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
}