【第22期】观点:IT 行业加班,到底有没有价值?

UIAlertController UIAlertAction (UIAlertView, UIActionSheet)(最好)

转载 2015年11月17日 22:18:15

 **

  UIAlertController & UIAlertAction

  1. iOS8中,我们失去了两个非常简单的控件,那就是UIAlertViewUIActionSheet,取而代之的是UIAlertControllerUIAlertAction

  2. iOS8中,UIAlertController控件使用两种样式代理题UIAlertViewUIActionSheet

  3. 意想不到的事情是UIAlertController的父类是UIViewController,所以要想显示出来不再是之前的show方法,而是使用推出模态视图的方式推出

  4. UIAlertController中,并没有按钮的添加,有的是TitleMessage这样的信息显示,而按钮,则是放在UIAlertAction类中了

  5. 如果我们想要添加一个按钮,通过创建UIAlertAction对象进行添加,按钮的事件也不再使用代理方法,而是通过Block的方式,我们可以添加多个按钮

  6. 除此之外,UIAlertController也可以添加UITextFieldUITextField的设置放在了Block内部,我们可以通过数组alertController.textFields来获取添加的输入框中的值,同样,输入框我们可以添加多个

  !!!7. !!!注意:输入框的添加只能在alertView样式下添加,如果是在actionSheet方式下添加,会造成运行时错误,所以在添加输入框前最好添加判断

 */



// 看下效果图

UIAlertController <wbr>UIAlertAction <wbr>(UIAlertView, <wbr>UIActionSheet)

UIAlertController <wbr>UIAlertAction <wbr>(UIAlertView, <wbr>UIActionSheet)



// 主要代码

#pragma mark 分段控制器事件

- (IBAction)segmentedControlAction:(UISegmentedControl *)sender

{

    

    // 1. 创建UIAlertControl变量,但并不穿GIAn

    UIAlertController *alertController = nil;

    

    

    // 2. 根据点击的item创建不同样式的alertController

    switch (sender.selectedSegmentIndex) {

        case 0: { // 弹出AlertView

            alertController = [UIAlertController alertControllerWithTitle:@"Title" message:@"Message" preferredStyle:UIAlertControllerStyleAlert];

            break;

        }

        case 1: { // 弹出ActionSheet

            alertController = [UIAlertController alertControllerWithTitle:@"Title" message:@"Message" preferredStyle:UIAlertControllerStyleActionSheet];

            break;

        }

        default:

            break;

    }

    

    

    // 3. 添加取消按钮

    // 3.1 UIAlertAction 表示一个按钮,同时,这个按钮带有处理事件的block

    UIAlertAction *action = [UIAlertAction actionWithTitle:@"取消"style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {

        NSLog(@"取消");

    }];

    // 3.2 添加到alertController

    [alertController addAction:action];

    

    

    // 4. 添加需要谨慎操作的按钮,文字默认是红色的

    [alertController addAction:({

        UIAlertAction *action = [UIAlertAction actionWithTitle:@"谨慎操作的按钮" style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {

            NSLog(@"谨慎操作的按钮");

        }];

        action;

    })];

    

    

    // 5. 添加确定按钮

    [alertController addAction:({

        UIAlertAction *action = [UIAlertAction actionWithTitle:@"确定"style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {

            NSLog(@"确定");

            

            // 打印输入框的用户名和密码

            NSString *userNameStr = [alertController.textFields[0text];

            NSString *passwordStr = [alertController.textFields[1text];

            NSLog(@"userName is: %@  password is: %@", userNameStr, passwordStr);

        }];

        action;

    })];

    

    

    // 6. 添加输入框到alertView中,注意,actionSheet是没有办法添加textField的,强行添加会Crash

    if (alertController.preferredStyle == UIAlertControllerStyleAlert) {

        // 添加用户名输入框

        [alertController addTextFieldWithConfigurationHandler:^(UITextField *textField) {

            // 给输入框设置一些信息

            textField.placeholder = @"请输入用户名";

            textField.textAlignment = NSTextAlignmentCenter;

        }];

        // 添加密码输入框

        [alertController addTextFieldWithConfigurationHandler:^(UITextField *textField) {

            textField.placeholder = @"请输入密码";

            textField.secureTextEntry = YES;

            textField.textAlignment = NSTextAlignmentCenter;

        }];

    }

    

    

    // 7. 显示(使用模态视图推出)

    [self presentViewController:alertController animated:YEScompletion:nil];

}


举报

相关文章推荐

iOS开发 自定义UIAlertController的样式

字数595 阅读26 评论0 喜欢0 引言: 关于提示框, 系统自带的提示框有时可能满足不了我们的需求, 比如一个提示框的取消按钮我需要灰色字体显示, 这时候就需要自定义提示框的样...

iOS8中提示框的使用UIAlertController(UIAlertView和UIActionSheet二合一)

iOS8推出了几个新的“controller”,主要是把类似之前的UIAlertView变成了UIAlertController,这不经意的改变,貌似把我之前理解的“controller”一下子推翻了...

UIAlertController更改内容样式及插入自定义View

iOS8 之后系统把UIActionSheet和UIAlertView合并为了UIAlertController,使用就不比多说了,但在使用的过程中发现样式是固定的,点进去也未发现可以提供更改多样式的...

IOS 修改UIAlertController的按钮标题的字体颜色,字号,内容

现在只是实现了功能,原理是通过runtime获取对应的可以修改的key。具体还后续的学习中进行补充主要的代码://按钮点击- (IBAction)buttonClick:(UIButton *)sen...

关于iOS UIAlertController自定义的那些事儿

最近一直忙着做项目,时间紧任务重,客户比较任性,要求做一些比较个性的话的东西,关于alert一类的弹出框,客户的设计师觉得iOS系统的alert样式过于丑陋,强烈要求换成的他的设计。 从iOS 8开始...

iOS--UIAlertView与UIAlertController和UIAlertAction

iOS 8的新特性之一就是让接口更有适应性、更灵活,因此许多视图控制器的实现方式发生了巨大的变化。全新的UIPresentationController在实现视图控制器间的过渡动画效果和自适应设备尺寸...

改变UIAlertController的标题、内容的字体和颜色

改变UIAlertController的标题、内容的字体和颜色 字数480 阅读3314 评论19 喜欢18 在开发中,弹出框是必不可少的,通常情况下,我们只要弹出系统自带的弹出框就可以。but...

UIAlertController的使用及其自定义

UIAlertController的正常用法 // 上传 - (void)btnClick{     /* preferredStyle有且只有这两种枚举类型      *     UIAle...

【IOS】自定义UIAlertView样式,实现可替换背景和按钮

【原创作品, 欢迎转载,转载请在明显处注明! 谢谢。         原文地址:http://blog.csdn.net/toss156/article/details/7552075】 ...

更改UIAlertAction的字体颜色

更改UIAlertAction的字体颜色[action setValue:[UIColor colorWithWhite:0.000 alpha:0.500] forKey:@”titleTextCo...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)