美文网首页iOS的心路里程
iOS控件--UIAlertView/UIAlertContro

iOS控件--UIAlertView/UIAlertContro

作者: 罂粟之城 | 来源:发表于2018-12-29 15:51 被阅读2次

    UIAlertController功能上和 UIAlertView/UIActionSheet 相同的,在ios8.0之后UIAlertController就以一种模块化替换的方式代替了这两个控件的功能和作用。是使用对话框(alertView)还是使用底部弹框(actionSheet)取决于创建控制器时如何设置首选样式的。

    先看看 UIAlertView 控件的使用 -- 此控件最基本使用,是作为一个提醒弹框

    // iOS 8.0后 API_DEPRECATED
        // 非常简单的一种方式提供了一种提醒弹框,不继承代理,不执行 按钮的Action方法即可实现提醒功能
        UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"弹框标题" message:@"弹框提示内容" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:@"取消"];
        [alert show];
        
    // UIAlertView 其他功能这里不介绍,如果有其他功能其实也是会自定义,一般也不会使用系统自带的。
    

    UIAlertController 使用

    UIAlertController 在我的一般开发中使用最多也还只是类同于 UIAlertView 功能,作为提醒弹框使用,可以执行Action的弹框使用。其他的警告框或者底部弹框也还是使用的很少。

        *1,警告框/提示框
            //声明alertController对象
            UIAlertController *alertController=[UIAlertController alertControllerWithTitle:@"警告框标题" message:@"警告框中显示的信息" preferredStyle:UIAlertControllerStyleAlert];
            //声明alertAction
            UIAlertAction *cancelAction=[UIAlertAction actionWithTitle:@"取消"style:UIAlertActionStyleCancel handler:nil];
            UIAlertAction *okAction=[UIAlertAction actionWithTitle:@"好的"style:UIAlertActionStyleDefault handler:nil];
            UIAlertAction *deleteAction=[UIAlertAction actionWithTitle:@"删除"style:UIAlertActionStyleDestructive handler:nil];
            //向alertController中加入alertAction
            [alertController addAction:cancelAction];
            [alertController addAction:okAction];
            [alertController addAction:deleteAction];
            //向self视图中加入alertController
            [self presentViewController:alertController animated:YES completion:nil];
            
        *2,文本对话框----对话框中可以进行输入相关内容如用户名或者密码等
            UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"文本对话框" message:@"登录和密码对话框" preferredStyle:UIAlertControllerStyleAlert];
            //声明向alertController中加入textField控件
            [alertController addTextFieldWithConfigurationHandler:^(UITextField *textField){textField.placeholder = @"登录";
            [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector:(alertTextFielDidChanged:) name:UITextFieldDidChangedNotification object:textField];
            }];                                                                                                                           
            [alertController addTextFieldWithConfigurationHandler:^(UITextField *textField) {
                                                    textField.placeholder = @"密码";
                                                    textField.secureTextEntry = YES;}];
            //在“好的”按钮,按下时让程序读取文本框中的值
            UIAlertAction *okAction=[UIAlertAction actionWithTitle:@"好的" style:UIAlertActionStyleDefault handler:^(UIAlertAction *alertAction){
            UITextField *login=alertController.textFields.firstObject;
            UITextField *password=alertController.textFields.lastObject;
            [[NSNotificationCenter defaultCenter] removeObserVer:self name:UITextFieldDidChangedNotification object:nil];
            }];
            UIAlertAction *cancelAction=[UIAlertAction actionWithTitle:@"取消"style:UIAlertActionStyleCancel handler:^(UIAlertAction *alertAction){
                [[NSNotificaionCenter defaultCenter] removeObserver:self name:UITextFieldDidChangedNotification object:nil];
            }];
            okAction.enabled=NO;        
            [alertController okAction];
            [alertController cancelAction];
            [self presentViewController:alertcontroller animagted:YES completion:nil];
         -(void)alertTextFieldDidChanged:(NSNotification*)notification{
            UIAlertController *alertController = (UIAlertController *)self.presentedViewController;
           if (alertController) {
            UITextField *login = alertController.textFields.firstObject;
            UIAlertAction *okAction = alertController.actions.lastObject;
                okAction.enabled = login.text.length > 2;
                }
         }
         
         *3,底部弹框
            UIAlertController* alert = [UIAlertController alertControllerWithTitle:nil message:nil                                                                                                                                                                              preferredStyle:UIAlertControllerStyleActionSheet];
           UIAlertAction *cancleAction=[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil];
           UIAlertAction *messageAction=[UIAlertAction actionWithTitle:@"短信验证登录" style:UIAlertActionStyleDefault handler:nil];
           UIAlertAction *findPwdAction=[UIAlertAction actionWithTitle:@"找回密码" style:UIAlertActionStyleDefault handler:nil];       
           [alert addAction:findPwdAction];
           [alert addAction:messageAction];
           [alert addAction:cancleAction];
           [self presentViewController:alert animated:YES completion:nil];
    
    以上是对 UIAlertView/UIAlertController 控件的描述和使用,不以偏概全,只授之以渔,有更好的操作也会及时更新。如果您有 UIAlertView/UIAlertController 控件的更好使用欢迎留言交流!

    相关文章

      网友评论

        本文标题:iOS控件--UIAlertView/UIAlertContro

        本文链接:https://www.haomeiwen.com/subject/eqqplqtx.html