cellForItemAt索引单元格下载数据的问题

时间:2017-07-18 17:10:09

标签: ios swift uicollectionviewcell

我有一个UIColelctionView单元格,其中应包含位于firebase数据库中的用户名。

首先我使用:

引用了自定义单元格

let f = FriendCell()

在cellForItemAt indexPath中,我定义每个单元格并引用数据来自的数组。然后我引用特定单元格将从中获取数据的个人用户。

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

    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: userResultCellId, for: indexPath) as! FriendCell

    let user = users[indexPath.row]

    f.nameLabel.text = user.name
    print(f.nameLabel.text!)

    return cell
}

当我运行此操作时,控制台print(f.nameLabel.text!)实际上正确打印了用户名,但它们似乎无法正确传入单元格。

我相信正在发生的是在下载数据之前每个单元格都已设置好,并且namelabel返回nil,因为那里没有值。但奇怪的是,当我打印该值时,它会正确返回名称。有什么建议吗?

1 个答案:

答案 0 :(得分:4)

您不需要该行:

let f = FriendCell()

摆脱它。然后在cellForItemAt中,您需要设置cell的属性,而不是f

override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: userResultCellId, for: indexPath) as! FriendCell

    let user = users[indexPath.row]
    cell.nameLabel.text = user.name

    return cell
}