gpt4 book ai didi

ios - 使用 UIButton 停止 NSTimer

转载 作者:行者123 更新时间:2023-11-29 10:31:16 25 4
gpt4 key购买 nike

我已经实现了一些代码,允许用户使用 UIDatePicker 设置倒计时的时间限制,然后用户按下“开始”按钮,倒计时将打印到 UILabel 中。

我正在尝试找到一种停止计时器的方法。这是我目前启动计时器的代码:

@implementation P11DetailController
int afterRemainder;
int iRemainder;
NSTimeInterval countDownInterval;

- (void)updateCountDown{
afterRemainder --;

int hours = (int)(afterRemainder)/(60*60);
int mins = (int)(((int)afterRemainder/60) - (hours * 60));
int secs = (int)(((int)afterRemainder - (60 * mins) - ( 60*hours*60)));

NSString *displayText = [[NSString alloc] initWithFormat:@"%02u : %02u :
%02u", hours, mins, secs];

self.displayLabel.text = displayText;
}

然后当用户用户按下“开始”时:

- (IBAction)startButton:(id)sender {
countDownInterval = (NSTimeInterval)_countdownTimer.countDownDuration;
iRemainder = countDownInterval;
afterRemainder = countDownInterval - iRemainder%60;
[NSTimer scheduledTimerWithTimeInterval:1 target:self
selector:@selector(updateCountDown) userInfo:nil repeats:YES];

最后,当用户按下“停止”时:

- (IBAction)stopButton:(id)sender {
//not sure what to add here

}

有什么想法吗?

最佳答案

您需要将对 NSTimer 的引用作为 ivar:

@implementation P11DetailController
{
NSTimer *myTimer;
}

然后:

myTimer = [NSTimer scheduledTimerWithTimeInterval:1 目标:自身
选择器:@selector(updateCountDown) userInfo:nil repeats:YES];

然后一个简单的调用:

[myTimer 失效];

将停止计时器。

这一切都在 documentation 中您应该首先咨询。

关于ios - 使用 UIButton 停止 NSTimer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29459605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com