Я делаю приложение таймера, и у меня есть ползунок обратного отсчета. Я хочу получить текущую позицию ползунка, когда я приостанавливаю его.
Я пытался использовать Int(value.sender)
, но у меня есть это сообщение об ошибке:
sliderOutlet.setValue(seconds, animated: true)
Cannot invoke 'setValue' with an argument list of type '(Int, animated: Bool)'
@IBOutlet weak var sliderOutlet: UISlider!
@IBAction func slider(_ sender: UISlider)
{
seconds = Int(sender.value)
timeScreen.text = timeString(time: TimeInterval(seconds))
}
@IBAction func startButton(_ sender: UIButton)
{
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(CountdownViewController.counter), userInfo: nil, repeats: true)
sliderOutlet.isHidden = true
}
@IBAction func pauseButton(_ sender: UIButton) {
stop()
timeScreen.text = timeString(time: TimeInterval(seconds))
sliderOutlet.setValue(seconds, animated: true)
}
func stop()
{
timer.invalidate()
sliderOutlet.isHidden = false
}
Я ожидал, что когда я нажму на pauseButton, sliderOutlet покажет текущую позицию в секундах.
Метод setValue(_:animated:)
ожидает Float
, а не Int
.
sliderOutlet.setValue(Float(seconds), animated: true)
Убедитесь, что значение seconds
находится между минимальным и максимальным значениями, установленными для ползунка, которые по умолчанию равны 0.0
и 1.0
соответственно.
Когда я нажал на кнопку паузы, слайдер Outlet показал последнюю позицию, которую я использовал. Вот моя ссылка на GitHub связь