gpt4 book ai didi

ios - 倒数计时器停止并重置为 0

转载 作者:行者123 更新时间:2023-11-29 00:16:41 30 4
gpt4 key购买 nike

我的倒计时计时器出现问题,它不想从 60 开始倒计时并在达到 0 时重置。目前它只是将其标签设置为 0 并开始倒计时到 -1、2-... 我如何让它在 xcode 的 iOS 上从 60 开始?

.m 文件

#import "ViewController.h"

@interface ViewController ()
{
int timeTick;
NSTimer *timer;
}

@end

@implementation ViewController

- (IBAction)stopStartBtn:(id)sender {
[timer invalidate];

timeTick = 3;

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(myTicker) userInfo:nil repeats:YES];
}

-(void)myTicker{
timeTick--;

NSString *timeString =[[NSString alloc] initWithFormat:@"%d", timeTick];
self.display.text = timeString;

if(timer >= 0){
[timer invalidate];
}
}

- (void)viewDidLoad {
[super viewDidLoad];
timeTick = 3;
}

@end

.h文件

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@property (strong, nonatomic) IBOutlet UILabel *display;
- (IBAction)stopStartBtn:(id)sender;


@end

最佳答案

您的代码当前从 0 开始计时器,递减它,然后检查它是否已达到 60。显然这不会发生。

如果你想在 60 开始并在 0 停止那么你需要在 viewDidLoad 中将 timeTick 设置为 60 并检查一个值myTicker 中的 0

并且不要忘记在您的 viewDidLoad 方法中调用 [super viewDidLoad];

您还需要修正您的支票,看看您是否已达到零。现在您看到的是 timer 指针而不是 timeTick 整数。

改变:

if(timer >= 0){
[timer invalidate];
}

到:

if (timeTick <= 0) {
[timer invalidate];
}

您也永远不会设置您的 timer 实例变量。您实际上设置了一个同名的局部变量。

改变:

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(myTicker) userInfo:nil repeats:YES];

到:

timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(myTicker) userInfo:nil repeats:YES];

关于ios - 倒数计时器停止并重置为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45170083/

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