现在有个需求,针对某种条件下的某个Cell,不允许响应点击事件,而其他的cell正常响应didSelectRowAtIndexPath方法。
我印象中,UITableViewCell 存在某个属性可以控制,网上有说
cell.selected = NO;
有说
cell.selectionStyle = UITableViewCellSelectionStyleNone;
这两种方法都不对,最终用了一个最最原始的方法,
cell.userInteractionEnabled = NO;
禁止了响应能力。
userInteractionEnabled 属性一定要谨慎使用,使用时逻辑分支要覆盖全面。
下面我解释一下网上的那两种错误的说法到底是什么意思
官方文档对cell的selected的属性的解释
set selected state (title, image, background). default is NO. animated is NO
cell.selected = NO
说明的是,cell设置为非选择状态,对于cell的title,image,background都是非选中的状态。
cell.selectionStyle = UITableViewCellSelectionStyleNone
则是说明cell点选情况下没有视觉上的选择样式,不同于有些情况下的蓝色(UITableViewCellSelectionStyleBlue )或者灰色(UITableViewCellSelectionStyleGray)的选择样式。