UITableViewCell在按下时不会突出显示

时间:2014-07-09 15:46:27

标签: ios uitableview

我有一个UITableView的子类,当选择一个单元格时我会发生令人沮丧的问题,我按下另一个单元格但不释放。一旦我按下所选单元格就会变得不亮,但是在我从印刷机上释放之前,tableview委托方法didUnhighlightCellwillDeselectCell不会被调用。在我在发布版本中选择了一个新单元格之前,我不希望单元格变得不亮。我通过添加一个长按手势识别器解决了这个问题,但这是一个笨重的解决方案,我想要更清洁的东西。

这有更简单的解决方案吗?谢谢

1 个答案:

答案 0 :(得分:1)

在UITableView子类中,覆盖touchesBegan:

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    /* Improves the usability of a table view with selectable cells,
     * to prevent premature selection of a cell, during dragging.
     */
    if (!self.dragging && !self.tracking) {
        [super touchesBegan:touches withEvent:event];
    }
}

这解决了在拖动过程中使所选行不突出显示的问题。这是因为在用户实际选择新行之前,不会调用didHighlightRowAtIndexPathdidUnhighlightRowAtIndexPath

如果你想在所有的桌面视图中使用这种行为,你可以把它放在超级课程中。