gpt4 book ai didi

xcode - 使用 HH :MM:SS? 的 NSTimer

转载 作者:行者123 更新时间:2023-12-02 07:58:40 26 4
gpt4 key购买 nike

如何更改此代码,使其具有 HH:MM:SS(小时、分钟、秒)?

我需要在 .h 或 .m 中添加代码以便我知道是哪一个吗?

目前它上涨了 1、2、3、4 等。

只是为了让你知道我是业余爱好者的诱饵,你可以复制并过去,这样我就知道你的意思了。

.h

@interface FirstViewController : UIViewController {

IBOutlet UILabel *time;

NSTimer *myticker;

//declare baseDate
NSDate* baseDate;

}

-(IBAction)stop;
-(IBAction)reset;

@end

.m

#import "FirstViewController.h"

@implementation FirstViewController

-(IBAction)start {
[myticker invalidate];
baseDate = [NSDate date];
myticker = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(showActivity) userInfo:nil repeats:YES];
}

-(IBAction)stop;{

[myticker invalidate];
myticker = nil;
}
-(IBAction)reset;{

time.text = @"00:00:00";
}
-(void)showActivity {
NSTimeInterval interval = [baseDate timeIntervalSinceNow];
NSUInteger seconds = ABS((int)interval);
NSUInteger minutes = seconds/60;
NSUInteger hours = minutes/60;
time.text = [NSString stringWithFormat:@"%02d:%02d:%02d", hours, minutes%60, seconds%60];
}

最佳答案

首先,在 FirstViewController.h 中声明 baseDate 变量,如下所示:

@interface FirstViewController : UIViewController {

IBOutlet UILabel *time;

NSTimer *myticker;

//declare baseDate
NSDate* baseDate;
}

然后,在 FirstViewController.m 的 start 方法中添加 baseDate = [NSDate date],如下所示:

-(IBAction)start {
[myticker invalidate];
baseDate = [NSDate date];
myticker = [NSTimer scheduledTimerWithTimeInterval:.01 target:self selector:@selector(showActivity) userInfo:nil repeats:YES];
}

之后,将您的 showActivity 方法更改为如下所示:

-(void)showActivity {
NSTimeInterval interval = [baseDate timeIntervalSinceNow];
double intpart;
double fractional = modf(interval, &intpart);
NSUInteger hundredth = ABS((int)(fractional*100));
NSUInteger seconds = ABS((int)interval);
NSUInteger minutes = seconds/60;
NSUInteger hours = minutes/60;
time.text = [NSString stringWithFormat:@"%02d:%02d:%02d:%02d", hours, minutes%60, seconds%60, hundredth];
}

另请注意,您必须更改计时器的间隔值,否则您的标签只会每秒更新一次。

关于xcode - 使用 HH :MM:SS? 的 NSTimer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9258252/

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