長按UITableViewCell彈出UIMenuController
阿新 • • 發佈:2018-12-21
[self addGestureRecognizer: [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longTap:)]];
- (void)longTap:(UILongPressGestureRecognizer *)gestureRecognizer {
if ([gestureRecognizer state]==UIGestureRecognizerStateBegan) {
[self becomeFirstResponder];
UIMenuController * menuController = [UIMenuController sharedMenuController];
UIMenuItem *copyItem = [[UIMenuItem alloc] initWithTitle:@"start" action:@selector(startAction)];
UIMenuItem *colloctionItem = [[UIMenuItem alloc] initWithTitle:@"stop" action:@selector(stopAction)];
[menuController setMenuItems: [NSArray arrayWithObjects:copyItem,colloctionItem, nil]];
[menuController setTargetRect:self.frame inView:self.superview];
[menuController setMenuVisible:YES animated:YES];
}
}
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
if(action ==@selector(startAction) ){
return YES;
} else if (action==@selector(stopAction)) {
return YES;
}
return [super canPerformAction:action withSender:sender];;
}
- (BOOL)canBecomeFirstResponder {
return YES;
}
- (void)startAction {
if (self.startBlock) {
self.startBlock();
}
}
- (void)stopAction {
if (self.stopBlock) {
self.stopBlock();
}
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if ([UIMenuController sharedMenuController].isMenuVisible) {
[[UIMenuController sharedMenuController] setMenuVisible:NO animated:YES];
}
}