gpt4 book ai didi

ios - 在自定义单元格中实现倒计时器

转载 作者:行者123 更新时间:2023-11-29 05:22:35 25 4
gpt4 key购买 nike

我是 Xcode 和 swift 的新手,现在我正在尝试创建 iOS 应用程序,该应用程序允许用户创建多个自定义倒计时器。我将 UITableViewControllerUITableViewCellUIViewController 一起使用来添加新的计时器。但我不知道如何共同实现它们。以及如何在自定义单元计时器设置中实现。

我的 UITableViewController 单元格:

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "timer", for: indexPath) as! TimerTableViewCell
cell.timerLabel.text = timersNames[indexPath.row]
let sec = timersSeconds[indexPath.row]
cell.timerTime.text = formattedTime(time: TimeInterval(sec))
print(sec)
return cell
}

我的自定义单元格 UITableViewCell 具有计时器功能:

class TimerTableViewCell: UITableViewCell {

var delegate: TimerCellDelegate?


@IBOutlet var timerLabel: UILabel!
@IBOutlet var timerTime: UILabel!
@IBOutlet var playButton: UIButton!
@IBOutlet var pauseButton: UIButton!
@IBOutlet var resetButton: UIButton!

var seconds = 10
var timer = Timer()
var hasTimerStarted = false
var isResumed = false



func runTimer() {
timer = Timer.scheduledTimer(timeInterval: 1, target: self,
selector: (#selector(TimerTableViewCell.updateTimer)), userInfo: nil, repeats: true)
}

@objc func updateTimer() {
if seconds < 1 {
timer.invalidate()
//Send alert to indicate "time's up!"
} else {
seconds -= 1
timerLabel.text = formattedTime(time: TimeInterval(seconds))
}
}


func formattedTime(time:TimeInterval) -> String {
let hours = Int(time) / 3600
let minutes = Int(time) / 60 % 60
let seconds = Int(time) % 60
return String(format:"%02i:%02i:%02i", hours, minutes, seconds)
}




@IBAction func timerStart(_ sender: UIButton) {
delegate?.didTapTimerStart(sender.tag)
if hasTimerStarted == false {
runTimer()
self.playButton.isEnabled = false
}

}

@IBAction func timerPause(_ sender: UIButton) {
delegate?.didTapTimerPause(sender.tag)
if self.isResumed == false {
timer.invalidate()
hasTimerStarted = false
self.isResumed = true
self.pauseButton.setTitle("Resume",for: .normal)
} else {
runTimer()
self.isResumed = false
hasTimerStarted = true
self.pauseButton.setTitle("Pause",for: .normal)
}


}

@IBAction func timerReset(_ sender: UIButton) {
delegate?.didTapTimerReset(sender.tag)
timer.invalidate()
seconds = 10
timerLabel.text = formattedTime(time: TimeInterval(seconds))
hasTimerStarted = false
isResumed = false
self.pauseButton.setTitle("Pause",for: .normal)
pauseButton.isEnabled = false
self.playButton.isEnabled = true
}
}

How I can put the code from custom cell to UITableViewController cell config and make them work together?

谢谢。

最佳答案

This教程应该可以帮助您使用 tableView 中的自定义单元格。希望对您有帮助!

关于ios - 在自定义单元格中实现倒计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58521560/

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