iOS开发之基础视图—— UIAlertView

     UIAlertView是iOS系统自带的弹出式对话框。继承UIView。

          alertView的alertViewStyle属性:

             UIAlertViewStyleDefault 只弹信息和按钮
             UIAlertViewStyleSecureTextInput 有一个textfield加密框
             UIAlertViewStylePlainTextInput 有一个不加密的textfield
             UIAlertViewStyleLoginAndPasswordInput 有两个textfield,Login和password

        UIAlertViewDelegate方法:

               #pragma marks -- UIAlertViewDelegate --  
              //根据被点击按钮的索引处理点击事件  
              -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex  
             {  
                      NSLog(@"clickButtonAtIndex:%d",buttonIndex);  
             }  

       //AlertView已经消失时执行的事件  
            -(void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex  
           {  
                   NSLog(@"didDismissWithButtonIndex");  
           }  
  
      //ALertView即将消失时的事件  
          -(void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex  
          {  
                 NSLog(@"willDismissWithButtonIndex");  
          }  
  
      //AlertView的取消按钮的事件  
         -(void)alertViewCancel:(UIAlertView *)alertView  
         {  
                NSLog(@"alertViewCancel");  
         }  
  
     //AlertView已经显示时的事件  
        -(void)didPresentAlertView:(UIAlertView *)alertView  
       {  
               NSLog(@"didPresentAlertView");  
       }  
  
    //AlertView即将显示时  
      -(void)willPresentAlertView:(UIAlertView *)alertView  
    {  
              NSLog(@"willPresentAlertView");  

    }

     第一个示例:


//
//  ViewController.m
//  UIAlertViewDemo
//
//  Created by Apple on 16/5/12.
//  Copyright © 2016年 Apple. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    // 创建UIAlertView控件
    UIAlertView *alertView = [[UIAlertView alloc]
                          initWithTitle:@"提示" // 指定标题
                          message:@"你正在使用警告框!"  // 指定消息
                          delegate:self // 指定委托对象
                          cancelButtonTitle:@"确定" // 为底部的取消按钮设置标题
                          // 另外设置3个按钮
                          otherButtonTitles:@"按钮一",@"按钮二",@"按钮三",nil];
    //通过给定标题添加按钮
    [alertView addButtonWithTitle:@"addButton"];
    //按钮总数
    NSLog(@"number Of Buttons :%ld",(long)alertView.numberOfButtons);
    //获取指定索引的按钮标题
    NSLog(@"buttonTitleAtIndex1:%@",[alertView buttonTitleAtIndex:1]);
    [alertView show];
    
    
}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
    NSString* msg = [NSString stringWithFormat:@"您点击了第%ld个按钮"
                     , (long)buttonIndex];
    // 创建UIAlertView控件
    UIAlertView *alert = [[UIAlertView alloc]
                          initWithTitle:@"提示" // 指定标题
                          message:msg  // 指定消息
                          delegate:nil
                          cancelButtonTitle:@"确定" // 为底部的取消按钮设置标题
                          // 不设置其他按钮
                          otherButtonTitles:nil];
    [alert show];
    
}

@end

  效果图如下:

iOS开发之基础视图—— UIAlertView_第1张图片



       第二个示例:

//
//  ViewController.m
//  UIAlertViewInputDemo
//
//  Created by Apple on 16/5/12.
//  Copyright © 2016年 Apple. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    UIAlertView *alert = [[UIAlertView alloc]
                          initWithTitle:@"登录"
                          message:@"请输入用户名和密码"
                          delegate:self
                          cancelButtonTitle:@"取消"
                          otherButtonTitles:@"确定" , nil];
    // 设置该警告框显示输入用户名和密码的输入框
    alert.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput;
    // 设置第2个文本框关联的键盘只是数字键盘
    [alert textFieldAtIndex:1].keyboardType = UIKeyboardTypeNumberPad;
    // 显示UIAlertView
    [alert show];
    
}

- (void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    // cancel=0 other=1
    NSLog(@"buttonIndex = %ld",(long)buttonIndex);
    // 如果用户单击了第一个按钮
    if (buttonIndex == 1) {
        // 获取UIAlertView中第1个输入框
        UITextField* nameField = [alertView textFieldAtIndex:0];
        // 获取UIAlertView中第2个输入框
        UITextField* passField = [alertView textFieldAtIndex:1];
        // 显示用户输入的用户名和密码
        NSString* msg = [NSString stringWithFormat:
                         @"您输入的用户名为:%@,密码为:%@"
                         , nameField.text, passField.text];
        UIAlertView *alert = [[UIAlertView alloc]
                              initWithTitle:@"提示"
                              message:msg
                              delegate:nil
                              cancelButtonTitle:@"确定"
                              otherButtonTitles: nil];
        // 显示UIAlertView
        [alert show];
    }
}

// 当警告框将要显示出来时激发该方法
-(void) willPresentAlertView:(UIAlertView *)alertView
{
    // 遍历UIAlertView包含的全部子控件
    for( UIView * view in alertView.subviews )
    {
        // 如果该子控件是UILabel控件
        if( [view isKindOfClass:[UILabel class]] )
        {
            UILabel* label = (UILabel*) view;
            // 将UILabel的文字对齐方式设为左对齐
            label.textAlignment = NSTextAlignmentLeft;
        }
    }
}

@end

   效果图如下:




你可能感兴趣的:(ios,uialertview)