添加长按手势会出现方法响应多次的情况
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");
}
}

本文介绍了解决iOS开发中长按手势被多次触发的问题。通过检查手势的状态来区分开始与结束,确保只在开始时执行所需操作。
9578

被折叠的 条评论
为什么被折叠?



