UIAlertView自动消失
话说,在写程序的过程中用到很多提示的信息,于是非常自然地就要使用UIAlertView控件。
但是这些提示的信息有时候只需提示就行,不用操作,那么此时就要这个提示框自动消失就OK了。
UIAlertView弹出后2s让其自动消失,两种方法:
(1)结合NSTimer
UIAlertView baseAlert = nil;
- (void) performDismiss: (NSTimer *)timer
{
[baseAlert dismissWithClickedButtonIndex:0 animated:NO];//important
[baseAlert release];
baseAlert = NULL;
}
- (void) presentSheet
{
baseAlert = [[UIAlertView alloc]
initWithTitle:@"Alert" message:@"\nMessage Message Message "
delegate:self cancelButtonTitle:nil
otherButtonTitles: nil];
[NSTimer scheduledTimerWithTimeInterval:2.0f target:self selector: @selector(performDismiss:)
userInfo:nil repeats:NO];
[baseAlert show];
}
(2)使用PerformSelector:withObject:afterDelay:方法
- (void) dimissAlert:(UIAlertView *)alert
{
if(alert)
{
[alert dismissWithClickedButtonIndex:[alert cancelButtonIndex] animated:YES];
[alert release];
}
}
- (void)showAlert{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"title" message:@"message" delegate:nil
cancelButtonTitle:nil otherButtonTitles:nil];
[alert show];
[self performSelector:@selector(dimissAlert:) withObject:alert afterDelay:2.0];
}
但是这些提示的信息有时候只需提示就行,不用操作,那么此时就要这个提示框自动消失就OK了。
UIAlertView弹出后2s让其自动消失,两种方法:
(1)结合NSTimer
UIAlertView baseAlert = nil;
- (void) performDismiss: (NSTimer *)timer
{
[baseAlert dismissWithClickedButtonIndex:0 animated:NO];//important
[baseAlert release];
baseAlert = NULL;
}
- (void) presentSheet
{
baseAlert = [[UIAlertView alloc]
initWithTitle:@"Alert" message:@"\nMessage Message Message "
delegate:self cancelButtonTitle:nil
otherButtonTitles: nil];
[NSTimer scheduledTimerWithTimeInterval:2.0f target:self selector: @selector(performDismiss:)
userInfo:nil repeats:NO];
[baseAlert show];
}
(2)使用PerformSelector:withObject:afterDelay:方法
- (void) dimissAlert:(UIAlertView *)alert
{
if(alert)
{
[alert dismissWithClickedButtonIndex:[alert cancelButtonIndex] animated:YES];
[alert release];
}
}
- (void)showAlert{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"title" message:@"message" delegate:nil
cancelButtonTitle:nil otherButtonTitles:nil];
[alert show];
[self performSelector:@selector(dimissAlert:) withObject:alert afterDelay:2.0];
}