IOS8 : UIAlertController
UIAlertController 和 UIAlertAction 用法:
1. 最简单的提醒视图:
这里我们实现一个最简单的提醒视图,包含1个标题,1行信息,1个按键,按下按键后,什么都不发生:
- - (IBAction)doAlert:(id)sender {
- // 准备初始化配置参数
- NSString *title = @"Alert Button Selected";
- NSString *message = @"I need your attention NOW!";
- NSString *okButtonTitle = @"OK";
- // 初始化
- UIAlertController *alertDialog = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert];
- // 创建操作
- UIAlertAction *okAction = [UIAlertAction actionWithTitle:okButtonTitle style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
- // 操作具体内容
- // Nothing to do.
- }];
- // 添加操作
- [alertDialog addAction:okAction];
- // 呈现警告视图
- [self presentViewController:alertDialog animated:YES completion:nil];
- }
进入程序后,点击“Alert Me!”按钮可触发这个提醒框,如图所示:
- - (IBAction)doMultiButtonAlert:(id)sender {
- // 准备初始化配置参数
- NSString *title = @"Alert Button Selected";
- NSString *message = @"I need your attention NOW!";
- NSString *okButtonTitle = @"OK";
- NSString *neverButtonTitle = @"Never";
- NSString *laterButtonTitle = @"Maybe Later";
- // 初始化
- UIAlertController *alertDialog = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert];
- // 分别3个创建操作
- UIAlertAction *laterAction = [UIAlertAction actionWithTitle:laterButtonTitle style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
- // 普通按键
- self.userOutput.text = @"Clicked 'Maybe Later'";
- }];
- UIAlertAction *neverAction = [UIAlertAction actionWithTitle:neverButtonTitle style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {
- // 红色按键
- self.userOutput.text = @"Clicked 'Never'";
- }];
- UIAlertAction *okAction = [UIAlertAction actionWithTitle:okButtonTitle style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
- // 取消按键
- self.userOutput.text = @"Clicked 'OK'";
- }];
- // 添加操作(顺序就是呈现的上下顺序)
- [alertDialog addAction:laterAction];
- [alertDialog addAction:neverAction];
- [alertDialog addAction:okAction];
- // 呈现警告视图
- [self presentViewController:alertDialog animated:YES completion:nil];
- }
3个按键分别代表了3种不同类型的按键,分别是默认按键(普通)、销毁按键(红色)和取消按键(粗体)。从代码看其实就是在上一个的基础上加了3个 UIAlertAction 而已,然后分别设置不同的 style,效果如下:
- - (IBAction)doAlertInput:(id)sender {
- // 准备初始化配置参数
- NSString *title = @"Email Address";
- NSString *message = @"Please enter your your email address:";
- NSString *okButtonTitle = @"OK";
- // 初始化
- UIAlertController *alertDialog = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert];
- // 创建文本框
- [alertDialog addTextFieldWithConfigurationHandler:^(UITextField *textField){
- textField.placeholder = @"Your Email";
- textField.secureTextEntry = NO;
- }];
- // 创建操作
- UIAlertAction *okAction = [UIAlertAction actionWithTitle:okButtonTitle style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
- // 读取文本框的值显示出来
- UITextField *userEmail = alertDialog.textFields.firstObject;
- self.userOutput.text = userEmail.text;
- }];
- // 添加操作(顺序就是呈现的上下顺序)
- [alertDialog addAction:okAction];
- // 呈现警告视图
- [self presentViewController:alertDialog animated:YES completion:nil];
- }
在创建操作前先创建文本框,以便后面的按键可以操作文本框内容。创建文本框也只是用了一个简单的方法而已,想创建更多文本框就再使用多次这个方法即可,程序效果如下:
4. 提醒图表
- - (IBAction)doActionSheet:(id)sender {
- // 准备初始化配置参数
- NSString *title = @"Alert Button Selected";
- NSString *message = @"I need your attention NOW!";
- NSString *okButtonTitle = @"OK";
- NSString *neverButtonTitle = @"Never";
- NSString *laterButtonTitle = @"Maybe Later";
- // 初始化
- UIAlertController *alertDialog = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleActionSheet];
- // 分别3个创建操作
- UIAlertAction *laterAction = [UIAlertAction actionWithTitle:laterButtonTitle style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
- // 普通按键
- self.userOutput.text = @"Clicked 'Maybe Later'";
- }];
- UIAlertAction *neverAction = [UIAlertAction actionWithTitle:neverButtonTitle style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {
- // 红色按键
- self.userOutput.text = @"Clicked 'Never'";
- }];
- UIAlertAction *okAction = [UIAlertAction actionWithTitle:okButtonTitle style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
- // 取消按键
- self.userOutput.text = @"Clicked 'OK'";
- }];
- // 添加操作(顺序就是呈现的上下顺序)
- [alertDialog addAction:laterAction];
- [alertDialog addAction:neverAction];
- [alertDialog addAction:okAction];
- // 呈现警告视图
- [self presentViewController:alertDialog animated:YES completion:nil];
- }
效果如图:
IOS8 : UIAlertController的更多相关文章
- IOS8 UIAlertController 弹框
本文转载至 http://blog.csdn.net/jinkaiouyang/article/details/35551769 IOS8中,Apple将UIActionSheet和UIAlertVi ...
- iOS8 UIAlertController弹出框中添加视图(例如日期选择器等等)
UIDatePicker *datePicker = [[UIDatePicker alloc] init]; datePicker.datePickerMode = UIDatePickerMode ...
- 升级IOS8游戏上传自定义头像功能失效的问题
为了支持arm64,之前已经折腾了很久,昨晚打包准备提交苹果审核时,测试那边的同事反馈说游戏上传自定义头像功能不可用了. 游戏上传自定义功能的简介:卡牌游戏最初是<比武招亲>中有一个充VI ...
- UIAlertController custom font, size, color
本文转载至 http://stackoverflow.com/questions/26460706/uialertcontroller-custom-font-size-color up vote2d ...
- iOS改变UIAlertView、UIActionSheet、UIAlertController系统字体颜色
废话不多说,直接上代码,效果是最好的说服力 1.改变UIAlertView字体颜色 [UIView appearance].tintColor = [UIColor greenColor]; 个人还是 ...
- iOS开发之UIAlertController的适配
在iOS8中,只能用UIAlertController.而原来的UIAlertView及UIActionSheet已经被抛弃掉了.但是如果一台iOS 7 的手机运行到有UIAlertControlle ...
- UIActionSheet 修改字体颜色
-(void)willPresentActionSheet:(UIActionSheet *)actionSheet { SEL selector = NSSelectorFromString(@&q ...
- UIAlertViewController+TextField 输入框
if (IOS8) { UIAlertController *alertController=[UIAlertController alertControllerWithTitle:CustomLoc ...
- runtime查找 UIAlertAction 的key 及 UIActionSheet 设置字体颜色
修改不了颜色了 结果发现kvo 的key 不对 哎 直接上代码 设置正确的属性找到对应的key 还以为iOS 11改变了方法 unsigned int count; Ivar *ivars = c ...
随机推荐
- Leetcode 182. Duplicate Emails
Write a SQL query to find all duplicate emails in a table named Person. +----+---------+ | Id | Emai ...
- bzoj2628: JZPSTR
Description 问题描述 你要对一个字符串进行三种操作: 0. 在位置x_i处插入一个字符串y_i 1. 删除位置[x_i, y_i)的字符串 2. 查询位置[x_i, y_i)的字符串包含多 ...
- 数据结构-String、char
String 常用方法: 获取长度:int length = strl.length() 获取第i个字符:char iChar = str.charAt(i) String转成字符数组:char[] ...
- 【推荐】PHP中格式化时间函数date与gmdate的区别 | 修改PHP的默认时区
PHP中的时间有2个格式化函数:date()和gmdate(),在官方的文档中的描述为: date -- 格式化一个本地时间/日期 gmdate -- 格式化一个 GMT/UTC 日期/时间,返回的是 ...
- 属性(Attribute)资源
前面已经介绍过自定义View组件的开发,自定义View组件与Android系统提供的View组件一样,即可在Java代码中使用,也可在XML界面布局代码中使用. 当在XML布局文件中使用Android ...
- mysql 子查询优化
今天用到要查询七天内都没有装机的门店信息,首先想到了用not in,先把装机的userid查出来,然后再id not in,但是这样就必须使用子查询,数据量少还可以,数据量大了的话,肯定效率特别低,因 ...
- php字符串比较
比较两个字符串是否相等,最常见的方法就是使用“===”来判断,至于它和“==”的区别,简单来说 就是前者强调“identical”类型也要求一样:后者要求“equal”,值相同就可以了.或者使用str ...
- 怎样看paper 最有效率
thinking more after reading. Don't just read the papers.in addition, at begining, you'd better focus ...
- Spring学习笔记IOC与AOP实例
Spring框架核心由两部分组成: 第一部分是反向控制(IOC),也叫依赖注入(DI); 控制反转(依赖注入)的主要内容是指:只描述程序中对象的被创建方式但不显示的创建对象.在以XML语言描述的配置文 ...
- C++编程之面向对象的三个基本特征
面向对象的三个基本特征是:封装.继承.多态. 封装 封装最好理解了.封装是面向对象的特征之一,是对象和类概念的主要特性. 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类 ...