版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Loving_iOS/article/details/81668666
添加长按手势会出现方法响应多次的情况
UILongPressGestureRecognizer *touch = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
[self addGestureRecognizer:touch];
解决方法:根据手势的状态判断,只有第一次执行时是UIGestureRecognizerStateBegan,其余都是UIGestureRecognizerStateEnd状态。
-(void)handleTap:(UIGestureRecognizer*)recognizer {
if (recognizer.state == UIGestureRecognizerStateBegan) {
NSLog(@"long pressTap state :begin");
[self becomeFirstResponder];
UIMenuItem *copyLink = [[UIMenuItem alloc] initWithTitle:@"复制"
action:@selector(copy:)];
[[UIMenuController sharedMenuController] setMenuItems:[NSArray arrayWithObjects:copyLink, nil]];
[[UIMenuController sharedMenuController] setTargetRect:self.frame inView:self.superview];
[[UIMenuController sharedMenuController] setMenuVisible:YES animated: YES];
}else {
NSLog(@"long pressTap state :end");
}
}