我正在开发一款应用,我希望为我的应用中的数字设置动画。我知道我需要使用NSTimer。只是不确定如何。例如,我希望应用程序从0.00到176.20(self.total.text)计数。
NSTimer *timer;
timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(update) userInfo:nil repeats:YES];
- (void)update{
float currentTime = [self.total.text floatValue];
float newTime = currentTime + 0.1;
self.total.text = [NSString stringWithFormat:@"%f", newTime];
}
答案 0 :(得分:1)
您需要决定要计算的增量。你想在176.20停止,所以看起来你想要的增量为0.1秒。您需要一个变量来存储当前位置。
的OBJ-C ///
const float limit = 176.2f
@property (nonatomic) float seconds;
@property (nonatomic, strong) NSTimer *updateTimer;
// Initialize
self.seconds = 0.0f;
self.updateTimer = [NStimer scheduledTimerWithTimeInterval:0.1f target:self selector:@selector(timerFired) userInfo:nil repeats:true];
夫特///
var seconds = 0.0
let limit = 176.2
let timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: Selector("timerFired"), userInfo: nil, repeats: true)
然后你需要创建一个函数,用于每次定时器触发时更新标签,以及一个调度定时器的函数。
的OBJ-C ///
- (void)timerFired {
self.seconds += 0.1f;
self.label.text = [NSString stringWithFormat:@"%f", self.seconds];
if (self.seconds >= limit) {
[self.updateTimer invalidate];
}
}
夫特///
func timerFired() {
seconds += 0.1 //Increment the seconds
label.text = "\(seconds)" //Set the label
if (seconds >= limit) {
timer.invalidate()
}
}