【问题标题】:NSTimer shows UILabel and UIImageView when it stopsNSTimer 停止时显示 UILabel 和 UIImageView
【发布时间】:2012-06-30 00:01:22
【问题描述】:

在我的应用项目中,我希望能够点击一个按钮,等待 5 秒,然后出现 UILabel 和 UIImageView。到目前为止,这是我所拥有的:

- (IBAction)startTimer
{
    responseBox.placeholder = @"Message Here";
    timer = [NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(timerStop) userInfo:nil repeats:YES];
    mainInt +=1;
}

- (void)timerStop
{
    if (mainInt == 5)
    {
        [timer invalidate];
        titleLabel.hidden = NO;
        messageLabel.hidden = NO;
        messageLabel.text = @"Message";
        image.hidden = NO;
    }
}

一切都正确链接,发生了什么?

【问题讨论】:

    标签: xcode uiimageview uibutton uilabel nstimer


    【解决方案1】:

    mainInt 仅在您按下startTimer 按钮时才会增加,因此您在timerStop 中没有用处。此外,如果您想正确增加 mainInt,请使用 mainInt++;

    试试这个:

    - (IBAction)startTimer
    {
        responseBox.placeholder = @"Message Here";
        timer = [NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(timerStop) userInfo:nil repeats:YES];
        mainInt++;
    }
    
    - (void)timerStop
    {
        [timer invalidate];
        titleLabel.hidden = NO;
        messageLabel.hidden = NO;
        messageLabel.text = @"Message";
        image.hidden = NO;
    }
    

    【讨论】:

    • 谢谢它现在工作。大约一个小时前我自己纠正了这个问题,但你的代码可能是最好的方法。谢谢!
    • 用后增量替换现在已过时的mainInt 上的+= 1 有什么意义?还有,为什么定时器还在重复?
    • 你怎么知道mainInt 没有在课堂上的其他地方使用?如果用户不希望计时器重复,那么他们可以更改该选项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    • 2012-08-16
    • 2010-11-05
    • 2015-12-08
    • 2011-03-31
    • 1970-01-01
    相关资源
    最近更新 更多