我在名为NSTimer
的函数中每0.05秒运行一次moving
。
在moving
内,我想要一个数字来计算并将其显示在标签中
并同时使物体移动。
现在问题是它只能同时做其中一件事。 这是代码:
timer = NSTimer.scheduledTimerWithTimeInterval(0.05, target: self, selector: "moving", userInfo: nil, repeats: true)
func moving() {
countingUp = countingUp + 1
label.text = "\(countingUp)"
objectOne.center = CGPointMake(objectOne.center.x, objectOne.center.y + 1)
}
现在它只是在对象不移动时才在标签中计数。 但是,如果我删除标签的整个代码部分,则对象正在移动。 有人可以帮帮我吗?
答案 0 :(得分:0)
试试这个:
let runloop = NSRunLoop.currentRunLoop()
let timer = NSTimer(timeInterval: 0.05, target: self, selector: "moving", userInfo: nil, repeats: true)
runloop.addTimer(timer, forMode:NSRunLoopCommonModes)
runloop.addTimer(timer, forMode:UITrackingRunLoopMode)
答案 1 :(得分:0)
试试这个......
let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(0.05 * Double(NSEC_PER_SEC)))
dispatch_after(delayTime, dispatch_get_main_queue()) {
countingUp = countingUp + 1
label.text = "\(countingUp)"
objectOne.center = CGPointMake(objectOne.center.x, objectOne.center.y + 1)
}