UICollectionView中的多个单元格

时间:2017-05-16 19:13:35

标签: ios swift uicollectionview

我有一个UICollectionView并有两种单元格类型。 ShareCell和ShareCellMedia。我有它,只有当属性.hasImage为true时才返回ShareCellMedia。但是,当在索引路径的cellforitem中实现逻辑时,它会将所有单元格返回为ShareCell或ShareCellMedia,在这种情况下,因为我使用的数据应该是一个媒体单元,而其他单元格是常规的。

以下是索引路径

项目的单元格中的代码
override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath :
    IndexPath) -> UICollectionViewCell {

    let friend = fetchedResultsController.object(at: indexPath) as! Friend
    if (friend.lastMessage?.hasImage)! == false {
        let mediaCell = collectionView.dequeueReusableCell(withReuseIdentifier: mediaCellId, for: indexPath) as!
        ShareCellMedia
        mediaCell.cell = friend.lastMessage
        return mediaCell
    }
    else if (friend.lastMessage?.hasImage)! == true {
        let regularCell = collectionView.dequeueReusableCell(withReuseIdentifier: cellId, for: indexPath) as!
        ShareCell
        regularCell.cell = friend.lastMessage
        return regularCell
    }

return UICollectionViewCell()
}

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

您是否正在获取正确的朋友对象?当您使用indexPath时,而不是indexPath.row

答案 1 :(得分:0)

索引路径上的我的cellforitem不是问题的原因。

部分感谢@DonMags评论,我能够推断出我用于消息的函数没有正确实例化变量.hasImage。