UIMenuController在Cell內部無法顯示的解決辦法。,組建7601解決辦法

來源:互聯網
上載者:User

UIMenuController在Cell內部無法顯示的解決辦法。,組建7601解決辦法

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];                        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;    }}
//必須實現的方法,注意不是 - (void)becomeFirstResponse方法。- (void)canBecomeFirstResponse{  return YES;}

 

 實現以上代碼,就可以在長按cell時顯示出UIMenuController。但是有一個問題就是,當我滑動CollectionView時,menu並沒有第一時間隱藏。

所以,可以在你需要menu隱藏的方法內部。實現以下代碼。

UIMenuController *menu = [UIMenuController sharedMenuController];

[menu setMenuVisible:NO animated:NO];

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.