zoukankan      html  css  js  c++  java
  • UIBarButtonItem不能获取frame

    在使用KxMenu这个厉害的控件做竖直列表的时候,发现UIBarButtonItem不能获取到frame,UIBarButtonItem是NSObject的子类,他不是一个uiresponed或者uiview的子类,所以他没有frame属性.

    所以当我们要确定弹出框的位置的时候,

    UIBarButtonItem *addContactItem = [[UIBarButtonItem alloc] initWithTitle:@"添加"
                                                                       style:UIBarButtonItemStylePlain
                                                                      target:self action:@selector(addContact:event:)];
    

     在设置action selector的时候多传递一个event参数,然后:

    - (void)addContact:(UIBarButtonItem *)sender event:(UIEvent *) event {
         NSArray *menuItems = @[
                             [KxMenuItem menuItem:@"添加朋友" image:nil target:self action:@selector(addFriend)],
                             [KxMenuItem menuItem:@"添加群组" image:nil target:self action:@selector(addGroup)],
                             [KxMenuItem menuItem:@"添加班级" image:nil target:self action:@selector(addClass)],
                             [KxMenuItem menuItem:@"扫一扫" image:nil target:self action:@selector(scan)]
                             ];
    
        CGRect fromRect = [[event.allTouches anyObject] view].frame;
    
        fromRect.origin.y += 20;
    
        [KxMenu showMenuInView:self.view.window
                      fromRect:fromRect
                     menuItems:menuItems];
    }
    

    这样我们就可以定位到触发动作的uibarbuttonitem的位置,并正确弹出窗口。

  • 相关阅读:
    学习进度第七周
    NABCD---生活日历
    学习进度第六周
    人月神话阅读笔记(3)
    人月神话阅读笔记(2)
    人月神话阅读笔记(1)
    石家庄地铁查询(双人项目)
    学习进度第五周
    学习进度第四周
    返回一个整数数组中最大子数组的和。(续2)---二维数组
  • 原文地址:https://www.cnblogs.com/ritian/p/6222945.html
Copyright © 2011-2022 走看看