Ich habe eine Ansicht, die auf die Breite meiner Ansicht und einen Timer eingestellt ist, der in der Zukunft (in den nächsten 5 Minuten) einen Punkt bekommt. Mein Ziel ist es nach Ansicht der Breite von den view.width
bis 0Wie animiere ich die Breite einer UIView mit einem Timer?
ich zu animieren versuchten
UIView.animate(withDuration: date.timeIntervalSinceNow, delay: 0, options: .curveEaseIn, animations: {
self.countdownBar?.frame = CGRect(x: 0, y:self.view.frame.maxY - 3, width: 0, height: 3)
}, completion: nil)
Das war aber macht die countdownBar
belebten von der Spitze der Ansicht zu tun bis es maxY
Position - 3 eher als die Breite
Jede Hilfe wäre willkommen!
bearbeiten: Timer Code
self.timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(self.countdownToCartExpiration), userInfo: nil, repeats: true)
Und in countdownToCartExpiration
ich einige Änderungen an der Benutzeroberfläche in bestimmten Zeitabständen von Minuten und Sekunden
Ich habe bereits einen Timer gehen, würde ich lieber als als eine 'animate' Block –
btw verwenden,' finalFrame.width = 0' wirft den Fehler "Breite ist eine Get-only-Eigenschaft" –
Oops ja du würdest brauche 'finalFrame.size.width'. Ich habe es aktualisiert. Können Sie für den Timer den Timer, den Sie eingerichtet haben, und die Methode, die Sie anrufen, posten? Wenn Sie den Timer verwenden möchten, um die Breite manuell zu ändern, benötigen Sie eine Methode, die während des Timers regelmäßig aufgerufen wird. Ist das für so etwas wie eine Fortschrittsanzeige? –