LongPress有多个状态,例如Began、Changed、Ended等等,所以按下去时候对应Began,会执行一次;抬起来时候Ended再次执行一次。如果你再移动手指位置,那么应该还会执行一次,这就是为什么LongPress执行多次的原因了
- (void)handleLongPressAtComment:(UILongPressGestureRecognizer *)longPressRecognizer { if (longPressRecognizer.state != UIGestureRecognizerStateBegan) return ; // except multiple pressed it ! CGPoint p = [longPressRecognizer locationInView:_table] ;// get longpress pt NSIndexPath *indexPath = [_table indexPathForRowAtPoint:p] ; // get indexpath from table with point . NSInteger row = indexPath.row ; NSLog(@"long press on commt at row %ld", (long)row) ; }