iOS:提示框(警告框)控件UIAlertView的详解
提示框(警告框)控件:UIAlertView
UIAlertViewStyleDefault = 0, //默认类型
UIAlertViewStyleSecureTextInput, //安全密码的文本框输入类型
UIAlertViewStylePlainTextInput, //普通文本框的文本框输入类型
UIAlertViewStyleLoginAndPasswordInput //登陆账号和密码输入类型
};
属性:
@property(nonatomic,copy) NSString *message; // 提示信息
@property(nonatomic,readonly) NSInteger numberOfButtons; // 提示框的按钮数量
- (NSInteger)addButtonWithTitle:(NSString *)title;
※返回指定索引值的提示框标题
- (NSString *)buttonTitleAtIndex:(NSInteger)buttonIndex;
※显示提示框
-(void)show;
※点击指定的按钮时提示框消失
- (void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated;
※设置输入文本框的索引,返回文本框
- (UITextField *)textFieldAtIndex:(NSInteger)textFieldIndex
协议:代理方法
protocol UIAlertViewDelegate <NSObject>
@optional
※点击提示框上的按钮时触发的方法
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex;
※提示框将要消失时触发的方法
- (void)alertViewCancel:(UIAlertView *)alertView;
※提示框将要显示时触发的方法
- (void)willPresentAlertView:(UIAlertView *)alertView;
※已经显示提示框时触发的方法
- (void)didPresentAlertView:(UIAlertView *)alertView;
※提示框将要消失是触发的方法
- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex;
※提示框已经消失时触发的方法
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex;
※设置提示框的第一个按钮是否不是取消按钮
- (BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView *)alertView;
@end
具体的举例如下:
首先在视图控制器视图中创建按钮并添加事件,便于完成提示框的创建:
- (void)viewDidLoad {
[super viewDidLoad];
//在视图中添加按钮事件
UIButton *button = [[UIButton alloc]initWithFrame:CGRectMake(, , , )];
[button setTitle:@"点击" forState:UIControlStateNormal];
[button setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
button.center = self.view.center;
//第一种形式:提示框上添加一两个按钮的默认类型
//[button addTarget:self action:@selector(Clicked_1:) forControlEvents:UIControlEventTouchUpInside];
//第二种形式:提示框上添加多个按钮的默认类型
//[button addTarget:self action:@selector(Clicked_2:) forControlEvents:UIControlEventTouchUpInside];
//第三种形式:提示框的类型为普通文本框输入类型
//[button addTarget:self action:@selector(Clicked_3:) forControlEvents:UIControlEventTouchUpInside];
//第四种形式:提示框的类型为安全文本框输入类型
//[button addTarget:self action:@selector(Clicked_4:) forControlEvents:UIControlEventTouchUpInside];
//第五种形式:提示框的类型为登陆账号和密码文本框输入类型
[button addTarget:self action:@selector(Clicked_5:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
}
1、第一种形式:提示框上添加一两个按钮的默认类型
#pragma mark -Clicked1 提示框上添加一两个按钮的默认类型
-(void)Clicked_1:(UIButton*)sender
{
//创建提示框对象
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"提示信息" message:@"信息输入有误" delegate:self cancelButtonTitle:@"确认" otherButtonTitles:@"取消", nil]; //显示提示框
[alertView show];
}
演示结果:

2、第二种形式:提示框上添加多个按钮的默认类型
#pragma mark -Clicked2 提示框上添加多个按钮的默认类型
-(void)Clicked_2:(UIButton*)sender
{
//创建提示框对象
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"提示信息" message:@"多个按钮" delegate:self cancelButtonTitle:@"button1" otherButtonTitles:@"button2", nil]; //继续添加按钮
[alertView addButtonWithTitle:@"button3"];
[alertView addButtonWithTitle:@"button4"];
[alertView addButtonWithTitle:@"button5"];
[alertView addButtonWithTitle:@"button6"];
[alertView addButtonWithTitle:@"button7"]; //显示提示框
[alertView show];
}
演示结果:

3、第三种形式:提示框的类型为普通文本框输入类型
#pragma mark -Clicked_3 提示框的类型为普通文本框输入类型
-(void)Clicked_3:(UIButton*)sender
{
//创建提示框对象
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"提示信息" message:@"请输入信息" delegate:self cancelButtonTitle:@"确认" otherButtonTitles:@"取消", nil]; alertView.alertViewStyle = UIAlertViewStylePlainTextInput; //显示提示框
[alertView show];
}
演示结果:

4、第四种形式:提示框的类型为安全文本框输入类型
#pragma mark -Clicked_4 提示框的类型为安全文本框输入类型
-(void)Clicked_4:(UIButton*)sender
{
//创建提示框对象
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"提示信息" message:@"请输入信息" delegate:self cancelButtonTitle:@"确认" otherButtonTitles:@"取消", nil]; alertView.alertViewStyle = UIAlertViewStyleSecureTextInput; //显示提示框
[alertView show];
}
演示结果:

5、第五种形式:提示框的类型为登陆账号和密码文本框输入类型
#pragma mark -Clicked_5 提示框的类型为登陆账号和密码文本框输入类型
-(void)Clicked_5:(UIButton*)sender
{
//创建提示框对象
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"提示信息" message:@"请输入账号和密码" delegate:self cancelButtonTitle:@"确认" otherButtonTitles:@"取消", nil]; alertView.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput; //显示提示框
[alertView show];
}
演示结果:

协议代理的方法的使用:
1、首先实现协议:@interface ViewController ()<UIAlertViewDelegate>
2、其次设置代理,以上面的第一种形式提示框举例:
#pragma mark -Clicked1 提示框上添加一两个按钮的默认类型
-(void)Clicked_1:(UIButton*)sender
{
//创建提示框对象
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"提示信息" message:@"信息输入有误" delegate:self cancelButtonTitle:@"确认" otherButtonTitles:@"取消", nil]; alertView.delegate = self; //设置代理 //显示提示框
[alertView show];
}
3、实现协议的方法:
#pragma mark -<UIAlertViewDelegate>
//※点击提示框上的按钮时触发的方法
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSLog(@"alertView:clickedButtonAtIndex:");
} //※提示框将要消失时触发的方法
- (void)alertViewCancel:(UIAlertView *)alertView
{
NSLog(@"alertViewCancel:");
} //※提示框将要显示时触发的方法
- (void)willPresentAlertView:(UIAlertView *)alertView
{
NSLog(@"willPresentAlertView:");
} //※已经显示提示框时触发的方法
- (void)didPresentAlertView:(UIAlertView *)alertView
{
NSLog(@"didPresentAlertView:");
} //※提示框将要消失是触发的方法
- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex
{
NSLog(@"alertView: willDismissWithButtonIndex:");
} //※提示框已经消失时触发的方法
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
NSLog(@"alertView: didDismissWithButtonIndex:");
} //※设置提示框的第一个按钮是否不是取消按钮
- (BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView *)alertView
{
NSLog(@"NO");
return NO;
}
刚开始时View中的按钮截图:

点击"点击"按钮时,截图中其他第一个按钮被设置为不是取消按钮(按钮无效)和代理方法执行顺序结果:

-- ::30.239 提示框(警告框)UIAlertView[:] willPresentAlertView:
-- ::30.240 提示框(警告框)UIAlertView[:] NO
-- ::30.763 提示框(警告框)UIAlertView[:] didPresentAlertView:
点击"确认"时,剩下的代理方法执行顺序的结果:
-- ::27.366 提示框(警告框)UIAlertView[:] alertView:clickedButtonAtIndex:
-- ::27.367 提示框(警告框)UIAlertView[:] alertView: willDismissWithButtonIndex:
-- ::27.777 提示框(警告框)UIAlertView[:] alertView: didDismissWithButtonIndex:
总的执行结果为:
-- ::30.239 提示框(警告框)UIAlertView[:] willPresentAlertView:
-- ::30.240 提示框(警告框)UIAlertView[:] NO
-- ::30.763 提示框(警告框)UIAlertView[:] didPresentAlertView:
-- ::27.366 提示框(警告框)UIAlertView[:] alertView:clickedButtonAtIndex:
-- ::27.367 提示框(警告框)UIAlertView[:] alertView: willDismissWithButtonIndex:
-- ::27.777 提示框(警告框)UIAlertView[:] alertView: didDismissWithButtonIndex:
iOS:提示框(警告框)控件UIAlertView的详解的更多相关文章
- 《手把手教你》系列技巧篇(三十八)-java+ selenium自动化测试-日历时间控件-下篇(详解教程)
1.简介 理想很丰满现实很骨感,在应用selenium实现web自动化时,经常会遇到处理日期控件点击问题,手工很简单,可以一个个点击日期控件选择需要的日期,但自动化执行过程中,完全复制手工这样的操作就 ...
- iOS:提示框(警告框)控件UIActionSheet的详解
提示框(警告框)控件2:UIActionSheet 功能:当点击按钮或标签等时,弹出一个提示框,显示必要的提示,然后通过添加的按钮完成需要的功能.它与导航栏类似,它继承自UIView. 风格类型: ...
- iOS:网页视图控件UIWebView的详解
网页视图控件:UIWebView 功能:它是继承于UIView的,是一个内置的浏览器控件,以用来浏览从网络下载下来的网页或者本地上加载下来的文档. 枚举: //网页视图导航类型 typedef NS_ ...
- iOS:选择器控件UIPickerView的详解和演示
选择器控件UIPickerView: 功能:它能够创建一个类似于密码锁式的单列或多列的选择菜单,用户可以通过它设置的代理来选择需要菜单中的任意的数据.例如创建日历.字体表(类型.大小.颜色).图库等. ...
- iOS:下拉刷新控件UIRefreshControl的详解
下拉刷新控件:UIRefreshControl 1.具体类信息: @interface UIRefreshControl : UIControl //继承控制类 - (instancetype)ini ...
- iOS:图像选取器控制器控件UIImagePickerController的详解
图像选择控制器:UIImagePickerController 功能:用于选取相册或相机等里面的照片. @interface UIImagePickerController : UINavigatio ...
- delphi控件属性大全-详解-简介
http://blog.csdn.net/u011096030/article/details/18716713 button 组件: CAPTION 属性 :用于在按钮上显示文本内容 Cancel ...
- 【VB技巧】VB ListView 控件功能使用详解
来源:http://lcx.cc/?i=494 ListView控件 在工具箱上击鼠标右键,选择快捷菜单的Components(部件)项,在控件列表中选择Microsoft Windows Commo ...
- 转 VB ListView控件各种操作详解
Private Sub Form_Load() ListView1.ListItems.Clear '清空列表 ListView1.ColumnHeaders.Clear '清空列表头 ListVie ...
随机推荐
- 解决 .net HttpClient 调用时出现的 "A task was cancelled" 错误
近日在系统中集成ElasticClient客户端,自动创建索引.删除索引,发现通过 ElasticClient 的 LowerLevelClient 无法正确返回结果,但是索引已成功创建或删除. 并会 ...
- javascript 进制转换(2进制、8进制、10进制、16进制之间的转换)
//十进制转其他 var x=110; alert(x); alert(x.toString(8)); alert(x.toString(32)); alert(x.toString(16)); // ...
- php实现var_dump函数
<?php class VarDump { private static $isInLoop = false; private static $buffer = false; public st ...
- 《java虚拟机》----java内存区域与内存溢出异常
No1: java虚拟机所管理的内存将会包括以下几个运行时数据区域 1.方法区 2.虚拟机栈 3.本地方法栈 4.堆 5.程序计数器 No2: 程序计数器: 程序计数器(Program Counter ...
- jquery选择器详细说明
jquery中选择器感觉是用的特别多并且特别方便的一个方法,今天就在这里详细的记载下大多数常用的选择器,一起学习探讨. 首先介绍的是css3的选择器,其中包括了标签选择器(div),ID选择器(#ID ...
- redis_NoSql入门概述数据模型简介
以下面的背景去对比关系型数据库和非关系型数据库的差异(一个电商客户.订单.订购.地址模型来对比以下关系型数据库和非关系型数据库) 传统数据库一般设计会使用ER图(1:1/1:N/N:N,主键等) 而N ...
- [BZOJ3598][SCOI2014]方伯伯的商场之旅(数位DP,记忆化搜索)
3598: [Scoi2014]方伯伯的商场之旅 Time Limit: 30 Sec Memory Limit: 64 MBSubmit: 449 Solved: 254[Submit][Sta ...
- [BZOJ3514]CodeChef MARCH14 GERALD07加强版(LCT+主席树)
3514: Codechef MARCH14 GERALD07加强版 Time Limit: 60 Sec Memory Limit: 256 MBSubmit: 2177 Solved: 834 ...
- org.json.JSONObject and no properties discovered 错误解决
自己在搭建SSM框架的时候(Spring + spring mvc + mybatis)报错内容如下: No serializer found for class org.json.JSONObjec ...
- bzoj 2434 ac自动机
ac自动机中,如果以trie中的节点为节点,(fail[i],i)为边,可以建立一颗树,该树有如下特点:“节点u是节点v的祖先 当且仅当 u代表的字符串是v代表的字符串的一个后缀”.(u代表的字符串是 ...