IOS 警告框 (UIAlertView)的使用方法
1.普通警告框
IOS的SDK中提供了一个方便的类库UIAlertView,配合着不同参数来使用此类可以做出大多数的警告框,如下代码是IOS最简单的警告框。
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"你好" message:@"我是普通警告框"
delegate:nil cancelButtonTitle:@"好的" otherButtonTitles: nil];
[alert show];
当警告框创建完成后,我们可以在想显示的地方调用show方法。但是,如果在调试过程中跑过这一步会发现,并不是“show”这行代码一跑,我们的警告框就显示出来,而是要继续走完剩余的代码,在当前消息循环结束后,次警告框才会自动弹出。
注:所谓的当前消息循环结束,可以理解为:流程全部跑完,比如函数一直跑,跑到函数尾部返回外面一层函数,再继续跑返回更外面一层当此类推,直到跑到最外面那层的函数的尾部,下一步就出了最外面那层函数,随后程序控制权交给当前消息循环。如果是主线程,则仍然不停循环等候新消息,如果是子线程,则此子线程结束。
对于UIAlertView的界面来说,一般无论点击任何按钮,此警告框就会消失。
如果想知道是按下哪一个按钮的话,需要添加警告框的代理回调方法:
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
id alertbutton = [alertView buttonTitleAtIndex:buttonIndex];
NSLog(@"按下了[%@]按钮",alertbutton);
}
通过此代理方法,开发者能明确直到那个警告框的那个按钮被点击了。
最多可以有5个按钮,更多的话界面会有异常情况发生。运行结果如下:
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(, , , );
actIndicator.center = CGPointMake(CGRectGetWidth(alert.bounds)/, 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: 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:];
if(txtField)
{
txtField.placeholder=@"请输入用户名";
txtField.clearButtonMode = UITextFieldViewModeWhileEditing;
} txtField = [alert textFieldAtIndex:];
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;
}
显示效果如下:
其根据alert.alertViewStyle不同,显示的也不同
IOS 警告框 (UIAlertView)的使用方法的更多相关文章
- iOS警告框和操作表
应用如何与用户交流呢? 警告框(AlertView)和操作表(ActionSheet)就是为此而设计的. 本文案例的原型草图如图3-48所示,其中有两个按钮“Test警告框”和“Test操作表”,点击 ...
- Bootstrap历练实例:警告框(Alert)插件的方法
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...
- mvc后台可以使前台弹出警告框的几种方法
1,引用博主的 第一种方案:在jsp页面使用java代码实现. 后台处理代码:(把要提示的数据放到session中.) String message = ""; message = ...
- IOS UIAlertView(警告框)方法总结
转自:my.oschina.net/u/2340880/blog/408873?p=1 IOS中UIAlertView(警告框)常用方法总结 一.初始化方法 - (instancetype)initW ...
- iOS:提示框(警告框)控件UIAlertView的详解
提示框(警告框)控件:UIAlertView 功能:当点击按钮或标签等时,弹出一个提示框,显示必要的提示,然后通过添加的按钮完成需要的功能. 类型:typedef NS_ENUM(NSInte ...
- IOS中UIAlertView(警告框)常用方法总结
一.初始化方法 - (instancetype)initWithTitle:(NSString *)title message:(NSString*)message delegate:(id /*&l ...
- Selenium 2自动化测试实战17(警告框处理)
一.警告框处理 在WebDriver中处理JavaScript所生成的alert.confirm以及prompt十分简单,只需要使用switch_to_alert()方法定位到alert/confir ...
- iOS:提示框(警告框)控件UIActionSheet的详解
提示框(警告框)控件2:UIActionSheet 功能:当点击按钮或标签等时,弹出一个提示框,显示必要的提示,然后通过添加的按钮完成需要的功能.它与导航栏类似,它继承自UIView. 风格类型: ...
- iOS警告收录及科学快速的消除方法
来自: http://www.cnblogs.com/dsxniubility/p/4757760.html iOS警告收录及科学快速的消除方法 前言:现在你维护的项目有多少警告?看着几百条警 ...
随机推荐
- hdu1285+hdu2467(拓扑排序)
确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- cron 定时任务
cron 是linux下的定时任务: M H D m d cmd. 这是一种cron文件格式. M: 分钟(0-59). H:小时(0-23). D:天(1-31). m: 月(1-12). d ...
- SQL学习之使用视图
1.简介:视图是虚拟的表.与包含的数据不一样,视图只包含使用时动态检索数据的查询.重点:视图是一个查询,不是一个表!
- android入门——Activity(2)
主要内容:一.IntentFlag 二.简单复杂数据传递 三.数据回传 四.打开系统界面 五.IntentFilter匹配 一.IntentFlag 复制一段内容 来源 http://i ...
- android listview 重用view导致的选择混乱问题
20150526 listview是常用的控件,经常用自定义的adapter,为了提高显示效率,常利用view的重用方式防止重绘,但因为重用利用的是旧的view,常导致显示的数据会由于position ...
- C# 微信公众平台开发(1)-- 服务器配置
题记:最近公司需要开发微信服务号,由本人负责,以前虽然听过微信开发,但并没有认真的去了解,项目开发中,也边看文档边开发,记录自己的项目开发经验: 1.注册帐号--填写服务器配置 在https://mp ...
- sql语句中特殊函数的用法
1.concat CONCAT(字串1, 字串2, 字串3, ...): 将字串1.字串2.字串3,等字串连在一起. 例如: Geography 表格 region_name store_na ...
- 请求http服务
①服务方法 [HttpGet]//get服务 public JsonResult GetUserName(int id) { try { IXiao_UserBLL bll = new Xiao_Us ...
- oracle中区分audit_file_dest, background_dump_dest, core_dump_dest, user_dump_dest
一般在$ORACLE_HOME\admin\{SID}目录下: audit_file_dest = /u01/app/oracle/admin/{SID}/adump ...
- oracle 数据库数据迁移解决方案
大部分系统由于平台和版本的原因,做的是逻辑迁移,少部分做的是物理迁移,接下来把心得与大家分享一下 去年年底做了不少系统的数据迁移,大部分系统由于平台和版本的原因,做的是逻辑迁移,少部分做的是物理迁 ...