Animation funktioniert nur einmal

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Animation funktioniert nur einmal

    Hallo,

    ich arbeite gerade an einer Animation bei der ein Bild in Herzform, kurz sichtbar wird und dann wieder verschwindet. Leider funktioniert das ganze nur einmal, wobei die Funktion immer ausgeführt wird.

    Hier mein Code:

    Quellcode

    1. import UIKit
    2. class ViewController: UIViewController {
    3. @IBOutlet var bildHerz: UIImageView!
    4. @IBOutlet var bild1: UIImageView!
    5. override func viewDidLoad() {
    6. super.viewDidLoad()
    7. bildHerz.isHidden = true
    8. let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(pictureDoubleTapped(recognizer:)))
    9. tapGestureRecognizer.numberOfTapsRequired = 2
    10. bild1.addGestureRecognizer(tapGestureRecognizer)
    11. }
    12. @objc func pictureDoubleTapped(recognizer: UITapGestureRecognizer) {
    13. print("funktioniert")
    14. UIViewPropertyAnimator(duration: 1.5, curve: .easeIn, animations: {
    15. self.bildHerz.isHidden = false
    16. self.bildHerz.alpha = 0.0
    17. }).startAnimation()
    18. }
    19. }
    Alles anzeigen
    Kann mir vielleicht jemand sagen was ich falsch mache und wie ich es hinbekomme immer bei einem Double Tap diese Animation auszuführen ?
    Wie gesagt, die Print-Ausgabe funktioniert jedes mal :)
  • Ich bin jetzt nicht der Animateur, aber wie wird denn das Image nach der Animation wieder auf „hidden“ gesetzt? Eigentlich müsste nach obigem Code das Bild nach einem Tap doch sichtbar bleiben ... oder was verpasse ich?

    Kann es sein, dass Du irgendeinen Unfug mit der viewDidLoad-Methode machst? :D

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • Michael schrieb:

    MyMattes schrieb:

    Eigentlich müsste nach obigem Code das Bild nach einem Tap doch sichtbar bleiben ... oder was verpasse ich?
    Ja, die alpha Property wir ja zusätzlich nach 0.0 animiert und damit ist das Bild wieder unsichtbar und bleibt es dann auch, weil nirgendwo die alpha Property wieder geändert wird.
    Was ist denn der Default Wert für alpha ? Außerdem wo soll ich Alpha ändern so das die Animation immer wieder funktioniert, innerhalb der Funktion ist halt vermutlich schlecht ?
  • ThisIsBeat schrieb:

    Was ist denn der Default Wert für alpha ?
    0.0: Voll transparent
    1.0: Voll deckend, keine Transparenz.

    Views sind standardmäßig voll sichtbar. Dann ist der Default-Wert für alpha wohl?

    ThisIsBeat schrieb:

    Außerdem wo soll ich Alpha ändern so das die Animation immer wieder funktioniert,
    Du kannst deinem UIViewPropertyAnimator einen Completion-Block hinzufügen, in dem du dann alle Werte auf die Werte vor der Animation zurücksetzen kannst.

    Übrigens ist die Property hidden nicht animierbar. Ergibt also keinen Sinn, diese im Animationsblock zu setzen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Michael ()