在我的表格视图中,我在
中设置选择样式- (void)tableView:(UITableView *)iTableView didSelectRowAtIndexPath:(NSIndexPath *)iIndexPath {
MyCell *aCell = (MyCell *)[iTableView cellForRowAtIndexPath:iIndexPath];
aCell.selectionStyle = UITableViewCellSelectionStyleBlue;
现在,选择样式在第二次点击时更改,而不是在第一次点按时更改。一旦单元格被轻敲,那么如果你回来再次选择它就可以正常工作。这是什么原因?
答案 0 :(得分:3)
我猜测这样做的原因是,当单元格已经选中时,会调用tableView:didSelectRowAtIndexPath:
方法(惊喜!)。因此,默认选择样式应用之前首次调用方法,即在执行aCell.selectionStyle = UITableViewCellSelectionStyleBlue
之前。当选择样式改变一次时,显然它仍然用于后续调用(轻击)。要解决此问题,您必须在tableView:cellForRowAtIndexPath:
或tableView:willSelectRowAtIndexPath:
方法中设置选择样式,在选择单元格之前调用这些方法。