gpt4 book ai didi

ios - 在 Swift 中的 5 个标签上显示递减的分钟和秒

转载 作者:搜寻专家 更新时间:2023-10-31 22:49:20 25 4
gpt4 key购买 nike

我正在用 Swift 制作一个应用程序,它有一个倒计时器,必须在 5 个标签上显示分钟和秒,确切地说,这是编队:

[9][9][9] : [5][9]

//999:59

因此,按照汽车中的旧里程表或那些旧的翻转数字时钟之一计算里程的原则。

我将使用标签作为测试模型,稍后它们将被图像集取代,但我需要数字显示的逻辑。

我设法使用 NSTimer.scheduledTimerWithTimeInterval(1.0...) 和一个单独的函数进行了简单的倒计时,在该函数中我从写入或声明的总数中减去一个数字。即

var initialTime:Int = 60   
var timerSeconds = NSTimer()

func timerTick() {
timerSeconds = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: "startCount", userInfo: nil, repeats: true)
}

func startCount() {
initialTime--
}

显示总时间没问题,但要将总时间分成分钟和秒,并将这两个分为 3 个标签,分钟和 2 个标签......我已经尝试了几个小时,我可以想什么。我对 swift 还比较陌生,所以如果我错过了什么请原谅。谢谢!

最佳答案

这不是 Swift 特有的。正确使用计时器是基础类(class)的问题。

计算不同的数字是基本的计算机数学。

不要在每次计时器触发时递减计数器。如果您的应用程序繁忙,计时器有时会“错过”(无法被调用)。

而是在启动计时器时记录 NSDate.timeIntervalSinceReferenceDate() + secondsToCompletion

let finishedInterval = 
NSDate.timeIntervalSinceReferenceDate() + secondsToCompletion

然后每次计时器触发时,计算新的剩余秒数并将其用于您的数学:

let remainingSeconds = Int(round(finishedInterval -
NSDate.timeIntervalSinceReferenceDate()))
//Then do math on the time to get your digits:

let secondsOnesPlace = remainingSeconds % 10
let secondsTensPlace = (remainingSeconds % 60) / 10

let remainingMinutes = remainingSeconds / 60


let remainingMinutesOncePlace = remainingMinutes % 10
let remainingMinutesTensPlace = (remainingMinutes / 10) % 10
let remainingMinutesHundredsPlace = (remainingMinutes / 100) % 10

println("\(remainingMinutesHundredsPlace)\(remainingMinutesTensPlace)\(remainingMinutesOncePlace):\(secondsTensPlace)\(secondsOnesPlace)")

然后使用所有“...place”值来设置标签数字/图像。

关于ios - 在 Swift 中的 5 个标签上显示递减的分钟和秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32052462/

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