UIMenuController在Cell内部无法显示的解决办法(iOS9.2)
UIMenuController在Cell内部无法显示的解决办法(iOS9.2)
发布时间:2016-12-28 来源:查字典编辑
摘要:Xcode7.2,iOS9.2环境下尝试在CollectionViewCell内部,添加LongPress手势,显示UIMenuContro...

Xcode7.2,iOS9.2环境下

尝试在CollectionViewCell内部,添加LongPress手势,显示UIMenuController。

@implementation CollectionViewCell //继承自UICollectionViewCell UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPress:)]; longPress.minimumPressDuration = 1; [self addGestureRecognizer:longPress];//添加长按手势 //实现长按方法 - (void)longPress:(UILongPressGestureRecognizer *)gesture { switch (gesture.state) { case UIGestureRecognizerStateBegan: { [self becomeFirstResponder];<span>//必须有!</span> UIMenuController *menu = [UIMenuController sharedMenuController]; UIMenuItem *item1 = [[UIMenuItem alloc] initWithTitle:@"保存" action:@selector(savePic)]; menu.menuItems = [NSArray arrayWithObject:item1]; [menu setTargetRect:self.scView.frame inView:self.scView.superview]; [menu setMenuVisible:YES animated:YES]; } break; default: break; } } <span>//必须实现。注意不是- (BOOL)becomeFirstResponder方法</span> - (BOOL)canBecomeFirstResponder { return YES; }

实现以上代码,就可以在长按cell时显示出UIMenuController。但是有一个问题就是,当我滑动CollectionView时,menu并没有第一时间隐藏。

所以,可以在你需要menu隐藏的方法内部。实现以下代码。

UIMenuController *menu = [UIMenuController sharedMenuController];

[menu setMenuVisible:NO animated:NO];

以上就是UIMenuController在Cell内部无法显示的解决办法,希望对大家的学习有所帮助,也希望大家多多支持查字典教程网。

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新IOS开发学习
热门IOS开发学习
编程开发子分类