Bonjour les gars, j'ai besoin d'aide. J'essaie de créer un compte à rebours qui peut compter à partir des heures, minutes et secondes. En ce moment, je ne peux que créer le compte à rebours pour les secondes, mais je veux que l'application soit capable de mettre à jour les secondes, minutes et heures quand je "glisse" avec le curseur. Je trouve très difficile de mettre à jour l'étiquette correctement et d'ajouter "heures et minutes" à l'application. Quelqu'un peut-il m'aider s'il vous plaît à comprendre la logique.Création d'un compte à rebours avec un curseur dans Xcode
Ceci est le code que j'ai écrit jusqu'à présent et cela fonctionne bien seulement avec des secondes .. J'ai également ajouté un fichier audio qui sera joué à la fin comme vous pouvez le voir dans le code.
class ViewController: UIViewController {
var secondsCount = 30;
var timer = Timer()
var audioPlayer = AVAudioPlayer()
@IBOutlet weak var label: UILabel!
@IBOutlet weak var labelmin: UILabel!
// Slideren som slider tid for sal 1
@IBOutlet weak var sliderOutlet: UISlider!
@IBAction func slider(_ sender: UISlider)
{
//Live changes the numbers
secondsCount = Int(sender.value)
label.text = String(secondsCount) + " Seconds"
}
//Start button
@IBOutlet weak var startOutlet: UIButton!
@IBAction func start(_ sender: Any)
{
//Nederstående kode aktiverer funktionen counter()
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(ViewController.counter), userInfo: nil, repeats: true)
sliderOutlet.isHidden = true
startOutlet.isHidden = true
}
//Counter function
func counter() {
secondsCount -= 1
label.text = String(secondsCount) + " Seconds"
if (secondsCount == 0)
{
timer.invalidate()
audioPlayer.play()
}
}
//Stop button
@IBOutlet weak var stopOutlet: UIButton!
@IBAction func stop(_ sender: Any)
{
timer.invalidate()
secondsCount = 30
sliderOutlet.setValue(30, animated: true)
label.text = "30 Seconds"
audioPlayer.stop()
sliderOutlet.isHidden = false
startOutlet.isHidden = false
}
// viewDidLoad
override func viewDidLoad()
{
super.viewDidLoad()
do
{
let audioPath = Bundle.main.path(forResource: "1", ofType: ".mp3")
try audioPlayer = AVAudioPlayer(contentsOf: URL(fileURLWithPath: audioPath!))
}
catch
{
//ERROR
}
}
Quelles sont les valeurs minimum et maximum pour votre curseur? Et quelle est la valeur de départ? Et, que voulez-vous arriver lorsque la valeur du curseur change? – DonMag
Peut-être une meilleure question: Dans quel format voulez-vous que le "compte à rebours" s'affiche? "02:34:21"? ou "2 heures, 34 minutes, 21 secondes"? ou autre chose? – DonMag
Je voudrais que ce soit au format "2 heures, 34 minutes, 21 secondes" et le compte à rebours ne doit que compter à partir de 2 heures ... pas plus .. C'est parce que c'est dans un but précis. –