Я учу себя, как писать код Swift, и я знаю, что это не красиво, но я ищу больше, чтобы сначала он заработал. Я знаю, что мне нужно, но я не могу понять это. У меня есть кнопка с одним действием, и когда вы нажимаете на нее, она мне нужна, чтобы изменить цвет, название и функцию. У меня есть цвет и изменение названия, но изменить функцию сложно. Кажется, мне нужно передать новую функцию в функцию «startTapped» внутри таймера, но я не могу найти хороший способ сделать это. Это может быть связано с жизненным циклом loadView ()
timerView.actionButton.addTarget(self, action: #selector(startTapped), for: .touchUpInside)
. Вот полный фрагмент кода:
view = timerView
timerView.installContraints()
timerView.actionButton.addTarget(self, action: #selector(startTapped), for: .touchUpInside)
}
@objc func startTapped() {
print("button pressed")
activeTimer?.invalidate()
let startDate = Date()
activeTimer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true, block: { _ in
let currentDate = Date()
let duration = currentDate.timeIntervalSince(startDate)
func formatDuration(DoubleDuration: (Double) -> String) {
// make number formatter function to format the TimeInterval Double into a String??
}
self.timerView.timerLabel.text = "\(duration)"
})
timerView.actionButton.setTitle("STOP", for: .normal)
timerView.actionButton.setTitleColor(.white, for: .normal)
timerView.actionButton.backgroundColor = .red
}
func stopTapped() {
print("stop tapped")
activeTimer?.invalidate()
}
func resetTapped() {
print("something")
} ```