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];
}

你可能感兴趣的:(timer,null)