Ich möchte ein ImageView in meinem ViewController "pulsieren", dh größer und dann wieder kleiner werden und das wiederholen bis der "Start" -Button gedrückt wurde. Das Problem ist, dass jedes Mal, wenn ich diese Funktion in der viewDidLoad() mit einer Wiederholungsschleife aufruft, es aus irgendeinem Grund einen Haltepunkt hat.Wiederhole while-Schleife funktioniert nicht - warum?
Das ist der Teil meines viewDidLoad ist():
repeat {
pulsate()
} while hasStarted == false
Wenn ich die Start-Taste drücken, hasStarted wahr wird und es sollte pulsierende stoppen. Aber es startet nicht einmal die Funktion, es ruft sofort einen Fehler auf. Wo ist das Problem?
Hier ist meine pulsieren() - Funktion
func pulsate()
{
frameOR = imageView.frame
frameNext = CGRect(x: imageView.frame.midX - 35, y: imageView.frame.midY - 35, width: 80, height: 80)
let frameVDL = CGRect(x: imageView.frame.midX - 150, y: imageView.frame.midY - 150, width: 300, height: 300)
if start == false
{
UIView.animate(withDuration: 2, animations: {
self.imageView.frame = frameVDL
}) { (finished) in
UIView.animate(withDuration: 2, animations: {
self.imageView.frame = self.frameOR
}, completion: nil)
}
}
}
Vielen Dank für Ihre Hilfe! Ich wünsche ihnen einen wunderbaren Tag!
Was ist der Fehler? –
Sie blockieren den Hauptthread. Es wird keine Schaltfläche (oder eine andere) UI-Aktionsmethode ausgeführt, bevor die Programmsteuerung zur Hauptereignisschleife zurückkehrt. –