CellForItematIndexPath无法设置变量

时间:2018-02-18 18:53:14

标签: swift uicollectionview uicollectionviewcell

我在UICollectionViewCell中有一个变量,我现在正在测试...这里是我的cellforitem

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let c = collectionView.dequeueReusableCell(withReuseIdentifier: chatCellId, for: indexPath) as! ChatCell
    c.userDidSend = (indexPath.item % 2 == 0) ? true : false
    return c
}

在ChatCell类中,我使用var userDidSend: Bool?初始化变量 但是每当我测试变量时,它总是返回nil。下面是为每个单元格测试变量的地方。

override func setupViews() {
    super.setupViews()

    if userDidSend == true {
        setupSentChat()
    } else if userDidSend == false {
        setupRecievedChat()
    }

    print(userDidSend)
}

除了这个特殊问题,一切正常。 想法?

修改 初始化单元视图时会调用setupViews。

override init(frame: CGRect){
    super.init(frame: frame)
    setupViews()
}

1 个答案:

答案 0 :(得分:0)

使用自定义setter似乎解决了这个问题。

var userDidSend: Bool? {
    didSet {
        if userDidSend == true {
            setupSentChat()
        } else if userDidSend == false {
            setupRecievedChat()
        }
    }
}