手机
当前位置:查字典教程网 >编程开发 >IOS开发 >UIMenuController在Cell内部无法显示的解决办法(iOS9.2)
UIMenuController在Cell内部无法显示的解决办法(iOS9.2)
摘要: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内部无法显示的解决办法,希望对大家的学习有所帮助,也希望大家多多支持查字典教程网。

【UIMenuController在Cell内部无法显示的解决办法(iOS9.2)】相关文章:

IOS开发之路--C语言指针

iOS中UIImagePickerController图片选取器的用法小结

Objective-C的MKNetworkKit开发框架解析

iOS基础知识之@property 和 Ivar 的区别

iOS App开发中UIViewController类的使用教程

ios8 UITableView设置 setSeparatorInset UIEdgeInsetsZero不起作用的解决办法(去掉15px空白间距)

Android中getActivity()为null的解决办法

iOS App开发中Masonry布局框架的基本用法解析

IOS开发中键盘输入屏幕上移的解决方法

iOS中长按调出菜单组件UIMenuController的使用实例

精品推荐
分类导航