tableView以编程方式完成,并且正在听代表们。
手势:
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapOnTableView:)];
[self.tableView addGestureRecognizer:tap];
-(void) didTapOnTableView:(UIGestureRecognizer*) recognizer
{
NSLog(@"ffff");
}
没有被调用。
答案 0 :(得分:0)
这应该有效,除非你没有点击tableview,检查是否正确显示tableview,或者添加断点来检查是否添加了手势识别器
答案 1 :(得分:0)
尝试使用界面构建器或此属性multipleTouchEnabled
在视图上启用多点触控。
如果那不是你想要的,你可以使用委托功能来接收触摸:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
return YES;
}
(如果你转到这个文件的标题,你可以找到可能有帮助的类似代表)
答案 2 :(得分:0)
问题是UITableView
有自己的手势识别器,并且与您添加的手势识别器冲突。您可以通过将UIViewController
子类符合<UIGestureRecognizerDelegate>
协议并实施以下方法gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:
来同时处理手势识别器。
另一方面,你要做的事情很可能是错的。尝试使用UIButton
对象而不是手势识别器,在99%的时间内足够。