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 ...
随机推荐
- python生成器 协程
生成器 参考文章: 协程 gevent 生成器进阶 看个例子: def gg(): n='' i=0 while True: n=yield i #通过send传入到n if not n: pa ...
- pyqt5最简单的打开和保存文件
import sys import os from PyQt5.QtWidgets import QApplication,QWidget,QFileDialog from t import Ui_F ...
- mysql函数积累
group_concat(),手册上说明:该函数返回带有来自一个组的连接的非NULL值的字符串结果.比较抽象,难以理解. 通俗点理解,其实是这样的:group_concat()会计算哪些行属于同一组, ...
- 【C#】编码史记
计算机中的字是如何处理的? 如果你用放大镜看一下,可以看出屏幕上的字是由一个一个的像素点组成的,每一个字符用一组像素点拼接出来,这些像素点组成一幅图像,变成了我们的文字,计算机又是如何将我们的文字保存 ...
- 湖南大学ACM程序设计新生杯大赛(同步赛)A - Array
题目描述 Given an array A with length n a[1],a[2],...,a[n] where a[i] (1<=i<=n) is positive integ ...
- 洛谷P3812 【模板】线性基 [线性基]
题目传送门 线性基 题目描述 给定n个整数(数字可能重复),求在这些数中选取任意个,使得他们的异或和最大. 输入输出格式 输入格式: 第一行一个数n,表示元素个数 接下来一行n个数 输出格式: 仅一行 ...
- Mybatis源码分析之插件的原理
MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用. 默认情况下,可以使用插件来拦截的方法调用包括: Executor (update, query, flushStatements, ...
- 6大原则java
1.开闭原则(Open Close Principle)定义:一个软件实体如类.模块和函数应该对扩展开放,对修改关闭. 开放-封闭原则的意思就是说,你设计的时候,时刻要考虑,尽量让这个类是足够好 ...
- Java 8中你可能没听过的10个新特性
lambda表达式,lambda表达式,还是lambda表达式.一提到Java 8就只能听到这个,但这不过是其中的一个新功能而已,Java 8还有许多新的特性——有一些功能强大的新类或者新的用法,还有 ...
- hibernate4日志配置
在平时运行程序时控制台有很对的日志打印,本文说明如何控制这些日志打印. 1.确定要使用日志的实现,我在这使用的是log4j. 2.加入log4j的api包slf4j-api.jar,log4j的转换包 ...