iOS(ios9.0 与 以下提示框操作)

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

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

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

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

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

一)新旧对比:

1.标准的Alert Sheet样式:


iOS(ios9.0 与 以下提示框操作)_第1张图片

旧方法:UIActionSheet:

UIActionSheet *actionSheet = [[UIActionSheet alloc]initWithTitle:@"点击的是代言按钮"

delegate:self

cancelButtonTitle:@"取消"destructiveButtonTitle:@"轻斟浅醉17好帅"otherButtonTitles:@"轻斟浅醉17真的好帅", nil];[actionSheet showInView:self.view];

新方法:UIAlertController

UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"点击的是代言按钮"message:nil

preferredStyle:UIAlertControllerStyleActionSheet];

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

[alertController addAction:cancelAction];

UIAlertAction *moreAction = [UIAlertAction actionWithTitle:@"轻斟浅醉17好帅" style:UIAlertActionStyleDestructive handler:nil];

[alertController addAction:moreAction];

UIAlertAction *OKAction = [UIAlertAction actionWithTitle:@"轻斟浅醉17真的好帅" style:UIAlertActionStyleDefault handler:nil];

[alertController addAction:OKAction];

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

2.标准的Alert样式:


iOS(ios9.0 与 以下提示框操作)_第2张图片

旧方法:UIAlertView:

UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"点击的是代言按钮"

message:@"轻斟浅醉17好帅"delegate:self cancelButtonTitle:@"就是帅" otherButtonTitles:@"没错", nil];

//显示alertView

[alertView show];

新方法:UIAlertController:

UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"点击的是代言按钮"

message:@"轻斟浅醉17好帅"preferredStyle:UIAlertControllerStyleAlert ];

UIAlertAction *Action = [UIAlertAction actionWithTitle:@"就是帅" style:UIAlertActionStyleDefault handler:nil];

[alert addAction:Action];

UIAlertAction *Action1 = [UIAlertAction actionWithTitle:@"没错" style:UIAlertActionStyleDefault handler:nil];

[alert addAction:Action1];

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

UIAlertController还可以设置多个Alert

再有2个以内操作的时候,按钮会水平排布。更多按钮的情况,就会像 action sheet 那样展示

你可能感兴趣的:(iOS(ios9.0 与 以下提示框操作))