有没有办法让UITapGestureRecognizer在触摸时运行?
我无法使用touchesBegan,因为我使用的是UITableView,超级视图基本上窃取了该事件。
我只想检测首次触摸屏幕的时间。为什么这么难?也许我需要一个与使用tapgesturerecognizer不同的解决方案?
答案 0 :(得分:0)
您可以使用state
的{{1}}属性来识别任何手势的各种状态 -
UIGestureRecognizer
因此,当手势开始时,请在注册的处理程序方法中使用类似的内容 -
@property(nonatomic,readonly) UIGestureRecognizerState state; // the current state of the gesture recognizer
答案 1 :(得分:0)
您可以在viewDidLoad
中向tableView添加点按手势识别器,如下所示:
UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGestureRecognized:)];
[self.tableView addGestureRecognizer:tapGestureRecognizer];
然后实现这个方法:
- (void)tapGestureRecognized:(UITapGestureRecognizer *)tapGestureRecognizer {
NSLog(@"tap gesture recognized");
}
刚试过这个,工作正常。每次点击我都会在我的控制台上收到日志消息。请注意,这会阻止tableview接收点击,其他手势将像往常一样由表格视图处理。
答案 2 :(得分:0)
您需要设置delaysContentTouches = NO