UIActionSheet是在iOS弹出的选择按钮项,可以添加多项,并为每项添加点击事件.

使用

1.需要实现UIActionSheetDelegate  协议

@interface NJWisdomCardDetailViewController ()<UIActionSheetDelegate>@end

2.弹出选择按钮框

- (void)showSheet{UIActionSheet *actionSheet = [[UIActionSheet alloc]initWithTitle:@"title,nil时不显示"delegate:selfcancelButtonTitle:@"取消"destructiveButtonTitle:@"确定"otherButtonTitles:@"第一项", @"第二项",nil];actionSheet.actionSheetStyle = UIActionSheetStyleBlackOpaque;[actionSheet showInView:self.view];
}

参数解释:

  • actionSheet.actionSheetStyle = UIActionSheetStyleBlackOpaque;//设置样式
  • cancelButtonTitle和destructiveButtonTitle 是系统带的两个按钮。
  • otherButtonTitles是自己定义的项,注意,最后一个参数要是nil。
  • [actionSheet showInView:self.view]; 这行语句的意思是在当前view显示Action sheet。

设置样式,操作表单也支持三种风格:

  • UIActionSheetStyleDefault              //默认风格:灰色背景上显示白色文字
  • UIActionSheetStyleBlackTranslucent     //透明黑色背景,白色文字
  • UIActionSheetStyleBlackOpaque          //纯黑背景,白色文字

3.监听项的点击事件。实现协议里的有相应的方法

(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{if (buttonIndex == 0) {[self showAlert:@"确定"];}else if (buttonIndex == 1) {[self showAlert:@"第一项"];}else if(buttonIndex == 2) {[self showAlert:@"第二项"];}else if(buttonIndex == 3) {[self showAlert:@"取消"];}
}
- (void)actionSheetCancel:(UIActionSheet *)actionSheet{  }
-(void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex{  }
-(void)actionSheet:(UIActionSheet *)actionSheet willDismissWithButtonIndex:(NSInteger)buttonIndex{  }

注意事项

在开发过程中,发现有时候UIActionSheet的最后一项点击失效,点最后一项的上半区域时有效,这是在特定情况下才会发生,这个场景就是试用了UITabBar的时候才有。解决办法:

在showView时这样使用,[actionSheet showInView:[UIApplication sharedApplication].keyWindow];或者[sheet showInView:[AppDelegate sharedDelegate].tabBarController.view];这样就不会发生遮挡现象了。

iOS UI基础-6.0 UIActionSheet的使用相关推荐

  1. iOS UI基础-7.0 UIScrollView

    概述 移动设备的屏幕大小是极其有限的,因此直接展示在用户眼前的内容也相当有限.当展示的内容较多,超出一个屏幕时,用户可通过滚动手势来查看屏幕以外的内容,普通的UIView不具备滚动功能,不能显示过多的 ...

  2. iOS UI基础-11.0 UINavigationController

    导航控制器 利用UINavigationController,可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型例子就是系统自带的"设置"应用 UINavigationCon ...

  3. iOS UI基础-4.1应用程序管理 字典转Model

    用模型取代字典 使用字典的坏处 一般情况下,设置数据和取出数据都使用"字符串类型的key",编写这些key时,编辑器没有智能提示,需要手敲 dict[@"name&quo ...

  4. iOS开发UI基础—手写控件,frame,center和bounds属性

    iOS开发UI基础-手写控件,frame,center和bounds属性 一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4 ...

  5. IOS开发基础之UI基础的团购源码完整版本

    IOS开发基础之UI基础的团购源码完整版本 // // ViewController.m // 17-团购案例 // // Created by 鲁军 on 2021/2/4. //#import & ...

  6. IOS开发之UI基础LOL英雄展示-15

    IOS开发之UI基础LOL英雄展示-15 // // ViewController.m // 15-英雄展示-单组数据 // // Created by 鲁军 on 2021/2/3. //#impo ...

  7. IOS开发基础之UI的喜马拉雅的项目-10

    IOS开发基础之UI的喜马拉雅的项目-10 // // ViewController.m // 10-喜马拉雅 // // Created by 鲁军 on 2021/2/2. //#import & ...

  8. IOS UI开发基础之超级猜图完整版本-08

    IOS UI开发基础之超级猜图完整版本-08 // // ViewController.m // 09-超级猜图 // // Created by 鲁军 on 2021/1/31. //#import ...

  9. iOS从初级到精通就业 UI基础-栾斌-专题视频课程

    iOS从初级到精通就业 UI基础-12502人已学习 课程介绍         本课程涵盖UIKit框架大多数基础常用控件的使用,以及页面跳转,页面传值,可视化编程等项目开发中常用技术. 课程收益   ...

最新文章

  1. 《Adobe Premiere Pro CC经典教程(彩色版)》——2.2 建立项目
  2. 【云周刊】第178期:阿里云以生态联盟推动全球市场,牵手Bolloré集团全球合作...
  3. EPSON机器人SPLE+语言_简单实例
  4. python是什么时候发布的_python发布日期
  5. 2009年网页设计10大趋势
  6. 001 makefile的使用
  7. PyTorch 1.0 中文文档:torch.utils.data
  8. js29--装饰着模式
  9. JS 字符串编码函数(解决URL特殊字符传递问题):escape()、encodeURI()、encodeURIComponent()区别详解
  10. iOS开发中的错误整理,Changing the delegate of a tab bar managed by a tab bar controller is not allowed...
  11. C语言下取整下半个方括号,c语言易错知识点总结[工作范文](28页)-原创力文档...
  12. HDU 5643 约瑟夫环的应用
  13. c++ 打印日志信息
  14. 勒索病毒最新变种for linux,Satan勒索病毒新变种卷土重来 安全狗提醒您注意
  15. Cloudera迁移scm数据库
  16. 淘宝平台搜索规则变化,怎么提升搜算转换率?
  17. 国开电大0-3岁婴幼儿的保育与教育形考任务
  18. STM32 DS18B20温度传感器实验(HAL库)
  19. ( 算法树之几何 )【 皮克定理 】
  20. PyDev Eclipse使用技巧说明

热门文章

  1. elasticSearch6源码分析(6)http和transport模块
  2. 创建squashfs.img文件挂载失败
  3. cookie的简单学习
  4. LipNet与ICLR评委互怼始末:名气大又怎样,还不是被拒绝了
  5. 如何有效提高数据中心PUE?
  6. PHP Fatal error: Class #39;DOMDocument#39; not found
  7. 作为程序员我给csdn博客添加打赏功能
  8. 难死金庸的考题(高中难度)
  9. 可爱的特殊字符集收集
  10. 解决mysqlslap执行命令报错(BEGIN failed--compilation aborted at //bin/mysqlslap line 2098)usr...