【问题标题】:Creating a Countdown Timer in Swift在 Swift 中创建倒数计时器
【发布时间】:2016-11-10 14:28:34
【问题描述】:

我编写了这段代码,它可以倒计时到一个特定的日期。

我将如何使倒计时的每个元素显示在单独的标签中。

所以我会有一个显示天数的标签,一个显示小时数的标签,一个显示分钟数的标签和一个显示秒数的标签。

代码:

class ViewController: UIViewController {

@IBOutlet weak var dateLabelOutlet: UILabel!

let currentDate = Date()
let dateFormatter = DateFormatter()

let userCalendar = Calendar.current

let requestedComponent: Set<Calendar.Component> = [.day,.hour,.minute,.second]

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    let timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(printTime), userInfo: nil, repeats: true)
    timer.fire()

}

func printTime()
{
    dateFormatter.dateFormat = "dd/MM/yy hh:mm:ss"
    let startTime = Date()
    let endTime = dateFormatter.date(from: "25/12/16 00:00:00")
    let timeDifference = userCalendar.dateComponents(requestedComponent, from: startTime, to: endTime!)

    dateLabelOutlet.text = "\(timeDifference.day!) Days \(timeDifference.hour!) Hours \(timeDifference.minute!) Minutes \(timeDifference.second!) Seconds"
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

}

【问题讨论】:

  • 由于您已经分离了组件,因此创建缺少的 3 个标签并分别分配组件。

标签: ios swift xcode timer countdown


【解决方案1】:

您的代码已经计算了DateComponents 中的差异,然后构建了一个组合了天、小时、分钟和秒差异的字符串。

只需更改此行:

dateLabelOutlet.text = "\(timeDifference.day!) Days \(timeDifference.hour!) Hours \(timeDifference.minute!) Minutes \(timeDifference.second!) Seconds"

您需要创建 4 个标签,并将 timeDifference.day 放在一个标签中,timeDifference.hour 在另一个标签中,timeDifference.minute 在第三个标签中,timeDifference.second 在第四个标签中。

如果您编写了该代码,我认为那将是显而易见的 - 还是您复制/粘贴的其他人的代码?

【讨论】:

  • 感谢我之前尝试过,但我收到一个错误,导致每次加载应用程序时模拟器都会崩溃。但这次成功了
  • 好的,这是一个单独的问题。当您遇到此类问题时,可以尝试退出 Xcode 和模拟器并重新启动它们,或者从项目菜单中选择“清理”。
猜你喜欢
  • 2019-07-10
  • 1970-01-01
  • 2015-11-13
  • 1970-01-01
  • 2022-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多