IOS 警告框 (UIAlertView)的使用方法

1.普通警告框

IOS的SDK中提供了一个方便的类库UIAlertView,配合着不同参数来使用此类可以做出大多数的警告框,如下代码是IOS最简单的警告框。

1  UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"你好" message:@"我是普通警告框" 
delegate:nil cancelButtonTitle:@"好的" otherButtonTitles: nil]; 2 [alert show];

    当警告框创建完成后,我们可以在想显示的地方调用show方法。但是,如果在调试过程中跑过这一步会发现,并不是“show”这行代码一跑,我们的警告框就显示出来,而是要继续走完剩余的代码,在当前消息循环结束后,次警告框才会自动弹出。

    注:所谓的当前消息循环结束,可以理解为:流程全部跑完,比如函数一直跑,跑到函数尾部返回外面一层函数,再继续跑返回更外面一层当此类推,直到跑到最外面那层的函数的尾部,下一步就出了最外面那层函数,随后程序控制权交给当前消息循环。如果是主线程,则仍然不停循环等候新消息,如果是子线程,则此子线程结束。

   对于UIAlertView的界面来说,一般无论点击任何按钮,此警告框就会消失。

   如果想知道是按下哪一个按钮的话,需要添加警告框的代理回调方法:

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex

{

    id alertbutton = [alertView buttonTitleAtIndex:buttonIndex];

    NSLog(@"按下了[%@]按钮",alertbutton);

}

  通过此代理方法,开发者能明确直到那个警告框的那个按钮被点击了。

  最多可以有5个按钮,更多的话界面会有异常情况发生。运行结果如下:IOS 警告框 (UIAlertView)的使用方法

2.无按钮警告框

  利用警告框的模态特性,来模拟一些屏蔽用户操作的现象。

  我们下面做一个警告框,在上面去掉所有元素,增加一个转动的进度圈来表明任务正在执行,这样就能达到我们的目的了,代码如下。

-(void)showNoButtonAlert

{

    UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"请稍等" message:nil delegate:self cancelButtonTitle:nil otherButtonTitles:nil];

    

    [alert show];

    

    alert.backgroundColor = [UIColor blackColor];

    //无敌风火轮

    UIActivityIndicatorView *actIndicator = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];

    //CGRect alertbounds=alert.bounds;

    

    //位置设置好

    actIndicator.frame=CGRectMake(0, 0, 30, 30);

    actIndicator.center = CGPointMake(CGRectGetWidth(alert.bounds)/2, CGRectGetHeight(alert.bounds)-40.0f);

    

    //动起来

    [actIndicator startAnimating];

    [alert addSubview:actIndicator];

    

    //过三秒消失

    [self performSelector:@selector(dismissAlert:) withObject:alert afterDelay:3.0f];

}



-(void)dismissAlert:(UIAlertView *)aAlertView

{

    if(aAlertView)

    {

        //警告框消失

        [aAlertView dismissWithClickedButtonIndex:0 animated:YES];

    }

}

3.显示文本输入框的警告框(登陆框)

 在警告框上显示一个文本输入框表明用户的输入区域,文本框下面则是提供两个按钮:确认和取消。具体代码如下:

-(void)showTextInputAlert

{

    UITextField *txtField=nil;

    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"你好" message:@"请输入新题目:\n\n\n\n" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];

    alert.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput;

    

    //显示之前配置txtField

    txtField = [alert textFieldAtIndex:0];

    if(txtField)

    {

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

        txtField.clearButtonMode = UITextFieldViewModeWhileEditing;

    }

    

    txtField = [alert textFieldAtIndex:1];

    if(txtField)

    {

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

        txtField.clearButtonMode = UITextFieldViewModeWhileEditing;

    }

    //alert.tag=kalertTextInputType;

    [alert show];

    

    NSLog(@"%@",txtField.text);

}



-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex

{

    id clickButton=[alertView buttonTitleAtIndex:buttonIndex];

    NSLog(@"按下了%@按钮",clickButton);

    id tmp=nil;

}

显示效果如下:IOS 警告框 (UIAlertView)的使用方法其根据alert.alertViewStyle不同,显示的也不同

你可能感兴趣的:(uialertview)