iOS核心笔记——UIAlertController
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS核心笔记——UIAlertController相关的知识,希望对你有一定的参考价值。
1、UIAlertController简介:
※了解
:UIAlertController - - -> 提醒框控制器,在需要提醒用户执行某些操作时使用;通常分为两种样式:中间提醒框、底部提醒框。
苹果官方介绍:
2、UIAlertController使用:
2-1、UIAlertController样式:
-
1、UIAlertController有2种样式:
如下如所示:
2-2、UIAlertController使用步骤:
- UIAlertController使用
alertControllerWithTitle:message:preferredStyle:
创建UIAlertController控制器,并设置提醒框提醒消息、标题、以及提醒框样式;
- 通过
actionWithTitle:style:handler:
方法创建UIAlertAction;
- alertController调用
addAction:
方法将action添加到alertController中;
- 源控制器调用
presentViewController:animated:completion:
方法,将alertController以Modal形式展示出来。
3、UIAlertController属性:
3-1、UIAlertController三大属性:
※重要:
preferredStyle属性为只读属性(即:readOnly
)。
3-2、UIAlertController中action属性:
※重要:
创建一个确定按钮,一定要注意不能在提醒控制器的按钮的点击方法内部用到提醒控制器自己
,不能把下面这句话放在block内部;“不然会死循环,导致警告控制器不能销毁”。
3-3、UIAlertController中添加文本框属性:
※重要:
只有中间提醒框样式才能够添加文本框,底部提醒框不能添加文本框。
4、2种样式示例:
4-1、中间提醒框:
示例程序:
1. // MARK: - 创建UIAlertController
2. UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"警告" message:@"您的账户余额已不足!" preferredStyle:UIAlertControllerStyleAlert];
3.
4. // MARK: - 设置alert的属性
5. // alert.preferredStyle 只读属性(readOnly)
6.// alert.preferredStyle = UIAlertControllerStyleAlert;
7.
8. // MARK: - 添加文本框
9. [alert addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
10. // 1. 设置占位文字
11. textField.placeholder = @"请输入充值金额!";
12. }];
13.
14. // MARK: - 创建按钮
15. UIAlertAction *sure = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {
16. // 1. 通过textFields属性获取文本框
17. NSString *text = [alert.textFields[0] text];
18. NSLog(@"您的账户已充值:%@元!", text);
19. }];
20.
21. UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
22. NSLog(@"您的账户已停机!");
23. }];
24.
25. // MARK: - 添加action
26. [alert addAction:sure];
27. [alert addAction:cancel];
28.
29. // MARK: - 显示提醒框
30. [self presentViewController:alert animated:YES completion:^{
31.
32. }];
4-2、底部提醒框示例:
示例程序:
1. // UIAlertController 通过alloc、init创建的默认是UIAlertControllerStyleActionSheet样式
2. UIAlertController *actionSheet = [[UIAlertController alloc] init];
3.
4. // MARK: - 设置属性
5. actionSheet.title = @"警告";
6. actionSheet.message = @"您的余额已不足, 请及时充值!";
7.
8. // MARK: - 只读属性
9.// actionSheet.preferredStyle = UIAlertControllerStyleActionSheet;
10.
11. // MARK: - 创建按钮
12. UIAlertAction *sure = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {
13. NSLog(@"您的账户已停机!");
14. }];
15.
16. UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
17. NSLog(@"您的账户已缴费!");
18. }];
19.
20. // MARK: - 添加action
21. [actionSheet addAction:sure];
22. [actionSheet addAction:cancel];
23.
24. // MARK: - 底部提醒框不能添加文本框
25.// [actionSheet addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
26.// // 1. 设置占位文字
27.// textField.placeholder = @"请输入充值金额!";
28.// }];
29.
30.
31. // MARK: - 底部显示提醒框
32. [self presentViewController:actionSheet animated:YES completion:^{
33.
34. }];
以上是关于iOS核心笔记——UIAlertController的主要内容,如果未能解决你的问题,请参考以下文章