长按UITableViewCell弹出UIMenuController

版权声明:本文为pureszgd原创文章,未经允许不得转载, 要转载请评论留言! https://blog.csdn.net/pureszgd/article/details/84580910
[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];
    }
}

猜你喜欢

转载自blog.csdn.net/pureszgd/article/details/84580910