IOS_警告框(UIAlertView,UIActionSheet)

警告框,当警告框弹出来后,用户无法与界面内的其他控件进行交互。

UIAlertView 在view的中间弹出警告框。UIAlertView 的创建非常简单,然后显示出来就可以了。


#import "ViewController.h"
@implementation ViewController

@synthesize btn;


//视图的加载
- (void)viewDidLoad {
    [super viewDidLoad];
    
    btn = [[UIButton alloc] initWithFrame:CGRectMake(100,100 ,200, 30)];
    [btn setTitle:@"Alter" forState:UIControlStateNormal];
    [btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    
    //创建Button,在Button的点击事件中显示AlertView
    [btn addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn];  //添加到视图中去
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

//按钮的点击事件
-(void)click:(UIButton *)sender{
    
    //创建UIViewAlert
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"alert" message:@"我出现了"
       delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
    
    //定制弹出框的样式
    /*
     UIAlertViewStyleDefault //默认
     UIAlertViewStylePlainTextInput //带输入框
     UIAlertViewStyleSecureTextInput//带密码输入框
     UIAlertViewStyleLoginAndPasswordInput //登陆输入框
     */
    alert.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput;
    [alert textFieldAtIndex:1].keyboardType = UIKeyboardTypeNumberPad; //设定键盘的类型
  
    [alert show];  //alertview 显示出来
   
}

//视图控制器要实现<UIAlertViewDelegate>,重写下面的方法,来实现AlertView的委托
//当用户点击警告框中的某个按钮的时候激活该方法
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
//    NSString *msg = [NSString stringWithFormat:@"你点击了第%ld个按钮",buttonIndex];
//    UIAlertView *altert = [[UIAlertView alloc] initWithTitle:@"提示" message:msg 
       delegate:nil cancelButtonTitle:@"确定" otherButtonTitles: nil];
    
    if (buttonIndex == 1) {
        UITextField *nameField = [alertView textFieldAtIndex:0];
        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];
        [alert show];
    }
    
}

//这个也是AlertViewDelegate中的方法,当警告框将要显示的时候会调用该方法,
//用户可以童工该方法,来定制UIAlertView
- (void)willPresentAlertView:(UIAlertView *)alertView{
    //提示框将要显示出来的时候
    
    //便利alertview 下面所有的子控件
    for (UIView *vi in alertView.subviews) {
        NSLog(@"%@",vi.class);
        if ([vi isKindOfClass:[UILabel class]]) {
            //如果是label控件
            UILabel *label = (UILabel *)vi;
            //将label的文字设定为左对齐
            label.textAlignment = NSTextAlignmentRight;
        }
    }
   }
@end






UIActionSheet 和UIAlertView 差不多,UIActionSheet表现为显示在屏幕底部的按钮序列,用户通过点击某个按钮来表
明自己的态度。UIActionSheet 只支持一个标题和多个按钮,会有两个固定按钮。



#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

@synthesize btn;

- (void)viewDidLoad {
    [super viewDidLoad];
    
    btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    btn.frame = CGRectMake(100, 100,100,20);
    [btn setTitle:@"确定" forState:UIControlStateNormal];
    [btn setTitleColor:[UIColor grayColor] forState:UIControlStateNormal];

    //点击按钮调用显示UIActionSheet的方法
    [btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn];
    }

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


//点击时间,创建actionsheet
-(void)btnClick:(UIButton *) btn{
    
    //初始化一个UIActionSheet
    UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:@"Title" 
     delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:@"销毁"
     otherButtonTitles:@"btn1",@"btn2",@"btn3", nil];
    
     /*
      UIActionSheetStyleDefault 默认
      UIActionSheetStyleBlackOpaque 黑背景白文字
      UIActionSheetStyleBlackTranslucent  透明黑色背景白文字
      */
     sheet.actionSheetStyle = UIActionSheetStyleBlackTranslucent;
    
    [sheet showInView:self.view];
    
    
}

//协议中的方法,点击各个btn的时候触发
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{
    
    NSString *msg = [NSString stringWithFormat:@"你点击了第%ld个按钮",buttonIndex];
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:msg delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:nil];
    
    [alert show]; //显示UIActionSheet
}
@end




你可能感兴趣的:(IOS_警告框(UIAlertView,UIActionSheet))