博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS UI基础-6.0 UIActionSheet的使用
阅读量:5983 次
发布时间:2019-06-20

本文共 1928 字,大约阅读时间需要 6 分钟。

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

使用

1.需要实现UIActionSheetDelegate  协议

@interface NJWisdomCardDetailViewController ()
@end

2.弹出选择按钮框

- (void)showSheet{    UIActionSheet *actionSheet = [[UIActionSheet alloc]                                  initWithTitle:@"title,nil时不显示"                                  delegate:self                                  cancelButtonTitle:@"取消"                                  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];这样就不会发生遮挡现象了。

 

转载地址:http://vqeox.baihongyu.com/

你可能感兴趣的文章
Sketch技巧—数字运算改变图层
查看>>
换字式密码
查看>>
Es6
查看>>
2013历程
查看>>
Queue
查看>>
用 Flask 来写个轻博客 (15) — M(V)C_实现博文页面评论表单
查看>>
wampserver 运行橙色,80端口没有被占用,查看错误日志方法
查看>>
Adwords Campaign network & placement
查看>>
java查询图片显示无图片显示项目默认图片
查看>>
page1201未完成
查看>>
oracle数据库命令-持续更新
查看>>
0106递归下降语意分析
查看>>
自动脚本工具新版 v2.0
查看>>
AC 自动机
查看>>
float,double和decimal类型
查看>>
使用MapReduce实现一些经典的案例
查看>>
5 . 4 . 3 架构
查看>>
类静态和实例化执行顺序优先级(静态构造函数、静态变量、静态方法)
查看>>
【翻译】jQuery是有害的
查看>>
ajax提交param 后台接受是对象
查看>>