自个儿一个办公室金沙js娱乐场官方网站 ,按钮配置都放在初始化函数中

自个儿一个办公室 , 一般闲职都一个办公室,UIAlertController以一种模块化替换的方式来代替这两个的功能和作用,相同的,UIAlertController 不管是要用 alert 还是 action sheet 方式展示,按钮配置都放在初始化函数中,UIAlertController 不管是要用 alert 还是 action sheet 方式展示,按钮配置都放在初始化函数中,UIActionSheet 

金沙js娱乐场官方网站 10

iOS 8 引入的 UIActionSheet 和 UIAlertView 的替代品 – UIAlertController

样式和代码如下:

金沙js娱乐场官方网站 1

 

换作 Alert 样式来试试:

只需将上面的 UIAlertControllerStyleActionSheet 替换成
UIAlertControllerStyleAlert 即可,其它完全不用动。即使将 “取消” action
先加,它也依旧躺在最底下,待遇平平,不像 actionsheet 中,人家 取消
自个儿一个办公室 金沙js娱乐场官方网站 2 一般闲职都一个办公室,真正干活的堆一个办公室,交流起来方便金沙js娱乐场官方网站 3金沙js娱乐场官方网站 4

金沙js娱乐场官方网站 5

 

添加个文本输入框:

金沙js娱乐场官方网站 6

 

8 引入的 UIActionSheet 和 UIAlertView
的替代品 – UIAlertController 样式和代码如下: 换作 Alert 样式来试试:
只需将上面的UIAlertControllerStyleActi…

在 iOS 8 中,UIAlertController 在功能上是和 UIAlertView 以及
UIActionSheet
相同的,UIAlertController以一种模块化替换的方式来代替这两个的功能和作用。

UIAlertController 同时替代了 UIAlertView 和
UIActionSheet,从系统层级上统一了 alert 的概念 —— 即以 modal 方式或
popover 方式展示。

UIAlertController是iOS8推出的新概念,取代了以前的
UIAlertView和UIActionSheet(现在仍可使用,但会有警告)。

UIAlertController(iOS8)是
UIAlertViewUIActionSheet 替代和升级版。

” UIAlertView is deprecated. Use UIAlertController with a
preferredStyle of UIAlertControllerStyleAlert instead.”

“UIActionSheet is deprecated. Use UIAlertController with a
preferredStyle of UIAlertControllerStyleActionSheet instead. “

UIAlertController 是 UIViewController 的子类,而非其先前的方式。因此新的
alert 可以由 view controller 展示相关的配置中获益很多。

UIAlertController 替代了 UIAlertView 和
UIActionSheet,拥有他们两个所有的功能,从系统层级上统一了 alert 的概念
—— 即以 modal 方式或 popover 方式展示。

UIAlertController 继承 UIViewController ,所以弹出方式可以用
模态弹出

一、UIAlertController的使用步骤

使用UIAlertController共需要三步:

  • 实例化UIAlertController

  • 实例化UIAlertAction

  • 显示UIAlertController

UIAlertController 不管是要用 alert 还是 action sheet 方式展示,都要以
title 和 message 参数来初始化。Alert 会在当前显示的 view controller
中心以模态形式出现,action sheet 则会在底部滑出。Alert
可以同时有按钮和输入框,action sheet 仅支持按钮。

UIAlertController 是 UIViewController 的子类,而非其先前的方式。因此新的
alert 可以由 view controller 展示相关的配置中获益很多。


1、实例化UIAlertController
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Title" message:@"message" preferredStyle:UIAlertControllerStyleAlert];

初始化时候需要设置样式 UIAlertControllerStyle,来确定是 Alert 还是
ActionSheet:

typedef NS_ENUM(NSInteger, UIAlertControllerStyle) {
    UIAlertControllerStyleActionSheet = 0,
    UIAlertControllerStyleAlert
} NS_ENUM_AVAILABLE_IOS(8_0);

新的方式并没有把所有的 alert
按钮配置都放在初始化函数中,而是引入了一个新类 UIAlertAction
的对象,在初始化之后可以进行配置。这种形式的 API
重构让对按钮数量、类型、顺序方便有了更大的控制。同时也弃用了 UIAlertView
和 UIActionSheet 使用的delegate 这种方式,而是采用更简便的完成时回调。

UIAlertController 不管是要用 alert 还是 action sheet 方式展示,都要以
title 和 message 参数来初始化。Alert 会在当前显示的 view controller
中心以模态形式出现,action sheet 则会在底部滑出。Alert
可以同时有按钮和输入框,action sheet 仅支持按钮。

1:初始化

初始化代码:

UIAlertController *alertController = [UIAlertController
alertControllerWithTitle:@”温馨提示” message:@”我是提示的内容”
preferredStyle:UIAlertControllerStyleAlert ];

初始化选择 UIAlertController风格:

style:UIAlertControllerStyleAlert  (Alert)

style:UIAlertControllerStyleActionSheet(ActionSheet)

2、实例化UIAlertAction
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
    NSLog(@"点击了Cancel");
}];
UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
    NSLog(@"点击了OK");
}];
[alertController addAction:cancelAction];
[alertController addAction:okAction];

通过创建 UIAlertAction 的实例,你可以将动作按钮添加到控制器上。

UIAlertAction 由标题字符串、样式以及当用户选中该动作时运行的代码块组成。

为了实现原来我们在创建 UIAlertView
时创建的按钮效果,我们只需创建这两个动作按钮并将它们添加到控制器上即可。

通过
UIAlertActionStyle,您可以选择如下三种动作样式:常规(default)、取消(cancel)以及警示(destruective)。

typedef NS_ENUM(NSInteger, UIAlertActionStyle) {
    // 常规样式
    UIAlertActionStyleDefault = 0,
    // 取消样式
    UIAlertActionStyleCancel,
    // 警示样式,按钮字体为红色
    UIAlertActionStyleDestructive
} NS_ENUM_AVAILABLE_IOS(8_0);

按钮显示的次序取决于它们添加到对话框控制器上的次序。一般来说,根据苹果官方制定的《iOS
用户界面指南》,在拥有两个按钮的对话框中,您应当将取消按钮放在左边。要注意,取消按钮是唯一的,如果您添加了第二个取消按钮,那么你就会得到如下的一个运行时异常:

‘UIAlertController can only have one action with a style of UIAlertActionStyleCancel’

新旧Alert 方式对比

标准的Alert样式

金沙js娱乐场官方网站 7

1

新的方式并没有把所有的 alert
按钮配置都放在初始化函数中,而是引入了一个新类 UIAlertAction
的对象,在初始化之后可以进行配置。这种形式的 API
重构让对按钮数量、类型、顺序方便有了更大的控制。同时也弃用了 UIAlertView
和 UIActionSheet 使用的delegate 这种方式,而是采用更简便的完成时回调。

2:添加按钮

取消按钮(靠左):

UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@”取消”
style:UIAlertActionStyleCancel handler:nil];

[alertController addAction:cancelAction];

确定按钮(靠右):

UIAlertAction *OKAction = [UIAlertAction actionWithTitle:@”确定”
style:UIAlertActionStyleDefault handler:nil];

[alertController addAction:OKAction];

按钮风格:

style:UIAlertActionStyleDefault–>标准样式

style:UIAlertActionStyleCancel–>取消样式,即取消操作

style:UIAlertActionStyleDestructive–>警示性样式(字体红色)

2.1、UIAlertActionStyleDefault 和 UIAlertActionStyleCancel 的区别:

添加UIAlertActionStyleCancel样式后,在UIAlertAction只有两个时,UIAlertActionStyleCancel样式的action都会按苹果的默认风格把取消按钮放在左边;

添加UIAlertActionStyleCancel样式后,在UIAlertAction有三个及其以上的时候,UIAlertActionStyleCancel样式的action会显示在最下面。

而添加UIAlertActionStyleDefault样式时,与你addAction到alertController上的顺序有关。

旧方法 :UIAlertView

let alertView = UIAlertView(title: "Default Style", message: "A standard alert.", delegate: self, cancelButtonTitle: "Cancel", otherButtonTitles: "OK")
alertView.alertViewStyle = .Default
alertView.show()

// MARK: UIAlertViewDelegate

func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) {
    switch buttonIndex {
        // ...
    }
}

一)新旧对比:

3:显示

[self presentViewController:alertController animated:YES
completion:nil];


2.2、UIAlertActionStyleDestructive 警示样式

金沙js娱乐场官方网站 8

警示样式的按钮“重置”

警示样式的按钮变成了红色。根据苹果官方的定义,“警示”样式的按钮是用在可能会改变或删除数据的操作上,因此用了红色的醒目标识来警示用户。

方法:UIAlertController

let alertController = UIAlertController(title: "Default Style", message: "A standard alert.", preferredStyle: .Alert)

let cancelAction = UIAlertAction(title: "Cancel", style: .Cancel) { (action) in
    // ...
}
alertController.addAction(cancelAction)

let OKAction = UIAlertAction(title: "OK", style: .Default) { (action) in
    // ...
}
alertController.addAction(OKAction)

self.presentViewController(alertController, animated: true) {
    // ...
}

1.标准的Alert Sheet样式:

旧方法:(UIAlertView)

3、显示UIAlertController
[self presentViewController:alertController animated:YES completion:nil];

标准的 Action Sheet 样式

金沙js娱乐场官方网站 9

2

金沙js娱乐场官方网站 10

1:初始化

UIAlertView *alertView = [[UIAlertView
alloc]initWithTitle:@”温馨提 message:@”我是提示信息” delegate:self
 cancelButtonTitle:@”取消” otherButtonTitles:@”确定”, nil];