弹出框自动消失

- (void)timerFireMethod:(NSTimer*)theTimer//弹出框
{
    UIAlertView *promptAlert = (UIAlertView*)[theTimer userInfo];
    [promptAlert dismissWithClickedButtonIndex:0 animated:NO];
    promptAlert =NULL;
}


- (void)showAlert:(NSString *) _message{//时间
    UIAlertView *promptAlert = [[UIAlertView alloc] initWithTitle:@"提示:" message:_message delegate:nil cancelButtonTitle:nil otherButtonTitles:nil];
   
    [NSTimer scheduledTimerWithTimeInterval:1.5f
                                     target:self
                                   selector:@selector(timerFireMethod:)
                                   userInfo:promptAlert
                                    repeats:YES];
    [promptAlert show];
}


在需要显示弹出框的地方调用[self showAlert:@"测试"];即可。

原理: 弹出的时候, 设置一个定时器。 这里设置1.5秒后, 把当前的弹出框置空。  (promptAlert =NULL;)


另外需要注意: 在NSTimer的函数里,userInfo不能为空,否则[ the Timer userInfo ]取不出alertView   或者你把alertView设成全局的也行,这样userinfo可以为nil,在NSTimer的触发函数里直接让全局的alertView消失

你可能感兴趣的:(弹出框,自动消失)