Nyx*_*0uf 17
正确的方法是在tableView上添加UITapGestureRecognizer:
UITapGestureRecognizer* doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleTap:)];
doubleTap.numberOfTapsRequired = 2;
doubleTap.numberOfTouchesRequired = 1;
[self.tableView addGestureRecognizer:doubleTap];
UITapGestureRecognizer* singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTap:)];
singleTap.numberOfTapsRequired = 1;
singleTap.numberOfTouchesRequired = 1;
[singleTap requireGestureRecognizerToFail:doubleTap];
[self.tableView addGestureRecognizer:singleTap];
Run Code Online (Sandbox Code Playgroud)
然后在您的回调方法中,您可以找到具有以下内容的单元格:
-(void)singleTap:(UITapGestureRecognizer*)tap
{
if (UIGestureRecognizerStateEnded == tap.state)
{
CGPoint p = [tap locationInView:tap.view];
NSIndexPath* indexPath = [_tableView indexPathForRowAtPoint:p];
UITableViewCell* cell = [_tableView cellForRowAtIndexPath:indexPath];
// Do your stuff
}
}
Run Code Online (Sandbox Code Playgroud)
我已经通过在手势识别器中添加以下内容来实现这一点,尽管我发现单次点击时会有轻微的延迟.
[tapRecognizer setDelaysTouchesBegan:YES];
[tapRecognizer setCancelsTouchesInView:YES];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8641 次 |
最近记录: |