我想处理不包含单元格的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/