iOS显示带运行时间的UIAlertView

时间:2013-03-13 16:15:08

标签: ios uialertview nstimer

我希望在没有用户活动的情况下退出我的应用。我找到了一个如何做到这一点的例子。当不活动计时器用完时,我想显示一个弹出窗口“在XX秒内退出”,其中秒将更新 - 即正在运行:60,59,58 ...和然后他们达到0我会注销用户(弹出窗口也会有一个“取消注销”按钮,我认为很容易实现。)我试图找出是否有一种简单的方法来创建这样的流行音乐在我看来,这似乎是一个相当普遍的想法,但到目前为止我找不到任何东西。

2 个答案:

答案 0 :(得分:3)

向您的私人界面添加两个属性:

@interface MyViewController ()
@property(nonatomic, strong) UIAlertView *logoutAlertView;
@property(nonatomic) NSUInteger logoutTimeRemaining;
@end

现在,当您显示提醒时,请执行以下操作:

self.logoutAlertView = [[UIAlertView alloc] initWithTitle:@"Title"
                                                  message:@"Logging out in 60 seconds"
                                                 delegate:self
                                        cancelButtonTitle:@"Dismiss"
                                        otherButtonTitles:nil];
[self.logoutAlertView show];

self.logoutTimeRemaining = 60;

[NSTimer scheduledTimerWithTimeInterval:1
                                 target:self
                               selector:@selector(updateAlert:)
                               userInfo:nil
                                repeats:YES];

您的updateAlert:方法如下所示:

- (void)updateAlert:(NSTimer *)timer {
    self.logoutTimeRemaining--;
    self.logoutAlertView.message = [NSString stringWithFormat:@"Logging out in %d seconds", self.logoutTimeRemaining];

    if (self.logoutTimeRemaining == 0) {
        // actually log out
        [timer invalidate];
    }
}

答案 1 :(得分:2)

在这种情况下,最好实现自定义UIAlertView,并使用更改其值的计时器将UILabel添加到其中

按照我对thread的回答,只为您的案例添加UILabel而不是UIButton