是否有任何理由为啥我的 UITableViewCell 的覆盖 setHighlighted 不会被调用但 UITableViewDelegate 方法会?

Posted

技术标签:

【中文标题】是否有任何理由为啥我的 UITableViewCell 的覆盖 setHighlighted 不会被调用但 UITableViewDelegate 方法会?【英文标题】:Is there any reason why my overriden setHighlighted for a UITableViewCell would not get called but the UITableViewDelegate method does?是否有任何理由为什么我的 UITableViewCell 的覆盖 setHighlighted 不会被调用但 UITableViewDelegate 方法会? 【发布时间】:2015-07-09 21:05:46 【问题描述】:

在 Swift 中,我重写了单元格的 highlighted 属性以更改它在突出显示时的外观,但是当我点击它时它永远不会被调用。

override var highlighted: Bool 
    didSet 
        println("called")
    

但是,被调用的UITableViewDelegate 方法didHighlightCellAtIndexPath 每次都会被调用。

这怎么可能?

【问题讨论】:

【参考方案1】:

确保UITableView 实际填充了UITableViewCell 子类 的实例。也就是说,确保 tableView(_:cellForRowAtIndexPath:) 实际上返回了您的 UITableViewCell 子类的对象。如果不是,则永远不会使用该属性覆盖。

【讨论】:

是的,我查过了,确实如此。 @DougSmith 嗯,好吧。是否有可能看到您项目的(可能简化的)副本?

以上是关于是否有任何理由为啥我的 UITableViewCell 的覆盖 setHighlighted 不会被调用但 UITableViewDelegate 方法会?的主要内容,如果未能解决你的问题,请参考以下文章