UIAlertView的自动消失、手动消失、自定义消失
2015-09-28 09:48
459 查看
UIAlertView的消失本质其实是触发了一个dismiss事件。
触发这个事件有以下两种方法:
1.按钮点击,UIAlertView上如果有按钮,点击任何按钮都会触发该事件,UIAlertView消失;
2.代码模拟点击
1。创建一个自动消失的UIAlertView,这种消失方法的本质其实就是:使用定时器+代码模拟点击
2.手动消失
如果你的UIAlertView上有按钮的话,点击任何一个按钮,都会触发一个dismiss事件,引起UIAlertView的消失。
3.自定制的消失,其实就是在自己认为合适的时候模拟点击。
下面这个例子是在textField的delegate执行即点击returnKey且输入昵称合法的时候,UIAlertView消失。
触发这个事件有以下两种方法:
1.按钮点击,UIAlertView上如果有按钮,点击任何按钮都会触发该事件,UIAlertView消失;
2.代码模拟点击
[AlertObject dismissWithClickedButtonIndex:0 animated:NO]
1。创建一个自动消失的UIAlertView,这种消失方法的本质其实就是:使用定时器+代码模拟点击
-(void) performDismiss:(NSTimer *)timer { [Alert dismissWithClickedButtonIndex:0 animated:NO]; [Alert release]; } -(void)presentAlert { Alert = [[UIAlertView alloc] initWithTitle:@"警告" message:@"出错啦!" delegate:self cancelButtonTitle:nil otherButtonTitles:nil, nil]; [NSTimer scheduledTimerWithTimeInterval:2.0f target:self selector:@selector(performDismiss:) userInfo:nil repeats:NO]; [Alert show]; }
2.手动消失
如果你的UIAlertView上有按钮的话,点击任何一个按钮,都会触发一个dismiss事件,引起UIAlertView的消失。
3.自定制的消失,其实就是在自己认为合适的时候模拟点击。
下面这个例子是在textField的delegate执行即点击returnKey且输入昵称合法的时候,UIAlertView消失。
- (void) enterNickName:(NSString*)msg { prompt = [[UIAlertViewalloc] initWithTitle:@"设置昵称" message:msg delegate:self cancelButtonTitle:nil otherButtonTitles:nil]; UITextField *textField = [[UITextFieldalloc] initWithFrame:CGRectMake(27.0,70.0, 230.0, 30.0)]; [textField setBackgroundColor:[UIColorwhiteColor]]; [textField setPlaceholder:@"输入昵称"]; textField.layer.cornerRadius=6.0; textField.delegate=self; textField.contentVerticalAlignment=UIControlContentVerticalAlignmentCenter; [prompt addSubview:textField]; [textField becomeFirstResponder]; textField.keyboardType=UIKeyboardTypeDefault; textField.keyboardAppearance=UIKeyboardAppearanceDefault; textField.returnKeyType=UIReturnKeyDone; [textField release]; [promptsetTransform:CGAffineTransformMakeTranslation(0.0, -40.0)]; //可以调整弹出框在屏幕上的位置 [prompt show]; } #pragma textField delegate - (BOOL)textFieldShouldReturn:(UITextField *)textField { NSLog(@"nickname=%@",textField.text); if (nil==textField.text ||0==[[textField.textstringByTrimmingCharactersInSet:[NSCharacterSetwhitespaceCharacterSet]] length]) { prompt.message=@"\n\n昵称不能为空!"; return YES; } if ([[textField.textstringByTrimmingCharactersInSet:[NSCharacterSetwhitespaceCharacterSet]] length]<2 ||[[textField.textstringByTrimmingCharactersInSet:[NSCharacterSetwhitespaceCharacterSet]] length]>15) { prompt.message=@"\n\n昵称只支持2-15个字,请重新设置"; return YES; } [prompt dismissWithClickedButtonIndex:0animated:NO];//触发dismiss [prompt release]; }
相关文章推荐
- ubuntu14,我把原始的账号改为了root,重启后只能用Guest在桌面解决方案
- UI09_自定义cell写通讯录
- 通过UIView 来获取 Controller
- Cannot find class 'org.junit.Test' on project build path
- Cannot find class 'org.junit.Test' on project build path
- UI09_UITableView省市区字典数组
- UILable和UIButton的常用设置
- UI09_UITableView自定义写cell
- UIActionSheet 操作表
- UI08_UITableView界面传值
- UITableView
- Number Sequence(快速幂矩阵)
- 201509280825_《css3——media query整理2》
- AlgorithmsI PA2: Randomized Queues and Deques Subset
- AlgorithmsI PA2: Randomized Queues and Deques RandomizedQueue
- AlgorithmsI PA2: Randomized Queues and Deques Deque
- iOS开发小白学习体验-UICollectionView(一)
- [iOS]iOS中UITabbarController左右滑动切换
- iOS开发UI篇—UIScrollView控件介绍
- string stringbuffer stringbuilder区别