我想处理不包含单元格的UITableView中的点击。换句话说,页眉和页脚。

我可以在页眉(没有页脚)上添加一个手势识别器,但是最后一部分底部的空间不响应轻敲。

我没有在上面添加手势识别器,而是尝试向表中添加手势识别器,但是它阻止了tableView:didSelectRowAtIndexPath:的调用。

我运气不太好尝试了各种UIGestureRecognizerDelegate调用。

我终于通过在识别器上设置cancelsTouchesInView = NO(我认为这是 secret )并在委托(delegate)中实现gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:来使它起作用,以便tableView可以触摸并称为tableView:didSelectRowAtIndexPath:
处理程序必须过滤掉单元格上的水龙头,但至少它可以工作。 (此外,在UITableView indexPathForRowAtPoint:point中发现了一个错误,该错误有时会返回无效的indexPaths。)

我的问题是:是否有更好的方法来获取单元格 View ,以防止触摸/手势进入 table 面? (如果没人给我任何更好的主意,我将发布代码。)

最佳答案

如果您不需要了解-单击的内容(页脚或页眉),则可以尝试以下方法。

viewDidLoad方法中添加手势识别器。

- (void) tableViewLongPress:(UILongPressGestureRecognizer *)gestureRecognizer {
    CGPoint p = [gestureRecognizer locationInView:self.tableView];

    NSIndexPath *indexPath = [self.messageTableView indexPathForRowAtPoint:p];
    if (indexPath == nil)
        NSLog(@"long press on table view but not on a row");
    else {
        NSLog(@"long press on table view on a row");
    }
}

注意力!我尚未测试此代码:)

关于ios - 如何检测UITableViewCells外部的UITableView上的点击-即在本节标题中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24926279/

10-11 20:17