UIAlertView的自动消失,手动消失和自定制消失

来源:互联网 发布:冷库配风机的算法 编辑:程序博客网 时间:2024/06/10 18:48

UIAlertView的消失本质其实是触发了一个dismiss事件。

触发这个事件有以下两种方法:

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:msgdelegate:selfcancelButtonTitle:nilotherButtonTitles: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];}




原创粉丝点击