让UITapGestureRecognizer在开始时识别触摸?

时间:2013-11-18 17:26:07

标签: ios uitableview touchesbegan

有没有办法让UITapGestureRecognizer在触摸时运行?

我无法使用touchesBegan,因为我使用的是UITableView,超级视图基本上窃取了该事件。

我只想检测首次触摸屏幕的时间。为什么这么难?也许我需要一个与使用tapgesturerecognizer不同的解决方案?

3 个答案:

答案 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