• UIActionSheet


    • 按钮的 index 按照 otherButton、cancelButton、addButtonWith 的顺序依次类推,起始值为 0。
    • ActionSheet 也可以设置 title 属性作为提示信息,一般不设置 title 看着会舒服一些。
    • ActionSheet 显示的时候调用的是 showInView。如果是在工具条或标签条中需要使用专门提供的其它方法。
    • 工具条的情况下 [actionSheet showFromToolbar:self.navigationController.toolbar];
    • 标签条的情况下 [actionSheet showFromTabBar:self.tabBar];

    1、UIActionSheet 的创建

    • 1.1 创建时直接添加按钮等信息

      // 设置代理时,需遵守协议 <UIActionSheetDelegate>
      UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"请选择" 
                                   delegate:self 
                          cancelButtonTitle:@"取消" 
                     destructiveButtonTitle:@"destructive"
                          otherButtonTitles:@"动作 1", @"动作 2", @"动作 3", nil];
      
      // 将 actionSheet 添加到 view
      [actionSheet showInView:self.view];
      
    • 1.2 先创建,后添加按钮等信息

      // 设置代理时,需遵守协议 <UIActionSheetDelegate>
      UIActionSheet *actionSheet = [[UIActionSheet alloc] init];
      
      actionSheet.title = @"请选择";
      [actionSheet addButtonWithTitle:@"取消"];
      [actionSheet addButtonWithTitle:@"动作 1"];
      [actionSheet addButtonWithTitle:@"动作 2"];
      [actionSheet addButtonWithTitle:@"动作 3"];
      actionSheet.cancelButtonIndex = 0;
      actionSheet.delegate = self;
      
      // 将 actionSheet 添加到 view
      [actionSheet showInView:self.view];
      

    2、UIActionSheet 的设置

    // 设置样式
    /*
    // take appearance from toolbar style otherwise uses 'default'
    UIActionSheetStyleAutomatic        = -1,
    
    UIActionSheetStyleDefault          = UIBarStyleDefault,
    UIActionSheetStyleBlackTranslucent = UIBarStyleBlackTranslucent,
    UIActionSheetStyleBlackOpaque      = UIBarStyleBlackOpaque ,
    */
    actionSheet.actionSheetStyle = UIActionSheetStyleDefault;
    
    // 设置标题
    actionSheet.title = @"系统提示";
    
    // 添加按钮
    /*
    需要放在 [actionSheet showInView:self]; 前才起作用
    */
    [actionSheet addButtonWithTitle:@"确定"]; 
    
    // 设置最下边位置的按钮
    /*
    设置最下边位置的按钮:
    
    大于 0 并且 小于等于按钮的总个数,按照 otherButton、cancelButton、addButtonWith 的顺序依次显示
    在最下边位置。
    等于 0 或者 大于按钮的总个数,按照 otherButton、cancelButton、addButtonWith 的顺序依次显示在最
    下边位置,并且取消最下边一个按钮和上边按钮的间隔。
    */
    actionSheet.cancelButtonIndex = 4;
    
    // 获取指定位置按钮的标题
    NSString *buttonTitle = [actionSheet buttonTitleAtIndex:5];
    
    // 获取按钮的个数,只读
    NSInteger numberOfButtons = actionSheet.numberOfButtons; 
    
    // 获取除取消按钮外第一个按钮的索引,只读
    NSInteger firstOtherButtonIndex = actionSheet.firstOtherButtonIndex;
    
    // 获取 actionSheet 是否已经显示出来,只读
    BOOL alertViewVisible = actionSheet.isVisible;
    
    // 显示 actionSheet
    [actionSheet showInView:self.view];
    
    // 隐藏 actionSheet
    [actionSheet dismissWithClickedButtonIndex:0 animated:YES];
    
    // 设置代理,需遵守协议 <UIActionSheetDelegate>
    actionSheet.delegate = self;
    

    3、UIActionSheetDelegate 的协议方法

    • 需遵守协议 UIActionSheetDelegate,并设置代理
    // 将要显示,操作表显示前被调用
    - (void)willPresentActionSheet:(UIActionSheet *)actionSheet {
    
    }
    
    // 已经显示,操作表显示后被调用
    - (void)didPresentActionSheet:(UIActionSheet *)actionSheet {
    
    }
    
    // 将要结束选择那个按钮,操作表关闭前被调用
    - (void)actionSheet:(UIActionSheet *)actionSheet willDismissWithButtonIndex:(NSInteger)buttonIndex {
    
    }
    
    // 已经结束了选择那个按钮,操作表关闭后被调用,操作表显示中应用程序进入睡眠状态时也会被调用
    - (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex {
    
    }
    
    // 点击了那个按钮,触摸操作表中的任意按钮时被调用,比 willDismissWithButtonIndex 先被调用
    - (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
    
    // 按钮的 index 按照 otherButton、cancelButton、addButtonWith 的顺序依次类推
    }
    
    // 强制关闭,操作表显示中强制关闭时被调用,例如操作表显示时应用程序突然关闭等场所
    - (void)actionSheetCancel:(UIActionSheet *)actionSheet {
    
    }
    
  • 相关阅读:
    Netty大小端
    手写简单IOC
    Java线程
    mysql查询性能问题,加了order by速度慢了
    字节码增强技术探索
    Linux 添加定时任务
    一千行 MySQL 学习笔记
    深入浅出Shiro系列
    深入浅出SpringMVC系列~
    来聊一聊 Linux 常用命令 (第二篇)~
  • 原文地址:https://www.cnblogs.com/CH520/p/9406474.html
Copyright © 2020-2023  润新知