zoukankan      html  css  js  c++  java
  • UIMenuController 实现长按显示自定义菜单功能

    这段时间在集成使用融云聊天功能的时候,想自定义消息cell的长按的菜单,在网上查了查,这是根据 UIMenuController 实现的。具体代码如下,我是使用一个btn实现的

    首先创建一个btn,并给btn添加一个长按的事件

    1 UILongPressGestureRecognizer *recognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPress:)];
    2     [btn addGestureRecognizer:recognizer];

    然后实现长按方法

    注意,这个控件必须要实现几个方法

    1、

    [btn becomeFirstResponder];

    2、

    - (BOOL)canBecomeFirstResponder{

        return YES;

    }

    3、让该view处于可交互状态

    具体代码如下

     1 - (void)longPress:(UILongPressGestureRecognizer *)recognizer{
     2     if (recognizer.state == UIGestureRecognizerStateBegan) {
     3         [btn becomeFirstResponder];
     4         UIMenuItem *flag = [[UIMenuItem alloc] initWithTitle:@"Flag"action:@selector(flag:)];
     5         UIMenuItem *approve = [[UIMenuItem alloc] initWithTitle:@"Approve"action:@selector(approve:)];
     6         UIMenuItem *deny = [[UIMenuItem alloc] initWithTitle:@"Deny"action:@selector(deny:)];
     7         UIMenuController *menu = [UIMenuController sharedMenuController];
     8         
     9         [menu setMenuItems:[NSArray arrayWithObjects:flag, approve, deny, nil]];
    10         [menu setTargetRect:btn.frame inView:btn.superview];
    11         [menu setMenuVisible:YES animated:YES];
    12     }
    13 }

    下面再写出各个菜单点击的实现方法即可,非常简单。

     1 - (void)flag:(id)sender {
     2     
     3     NSLog(@"Cell was flagged");
     4     
     5 }
     6 - (void)approve:(id)sender {
     7     
     8     NSLog(@"Cell was approved");
     9 }
    10 
    11 - (void)deny:(id)sender {
    12     
    13     NSLog(@"Cell was denied");
    14     
    15 }
  • 相关阅读:
    位运算与乘除运算的对照实验
    【字符串处理算法】字符串包括的算法设计及C代码实现
    语音识别及其应用出现“井喷式”发展
    UVA 10888
    SDUT 1500-Message Flood(set)
    string字符串常量池在内存中的位置
    6、jeecg 笔记之 自定义excel 模板导出(一)
    5、jeecg 笔记之 minidao 条件判断
    4、jeecg 笔记之 自定义显示按钮 (exp 属性)
    3、jeecg 笔记之 模糊查询
  • 原文地址:https://www.cnblogs.com/zhanghuanan/p/5318498.html
Copyright © 2011-2022 走看看