2015-02-02 12 views
13

Ich habe eine UIImageView mit einer Animation und in der UIView, ich einen FadeIn-Effekt anwenden, aber ich muss Fade-Out anwenden, wenn die UIImageView, die animiert ist, wenn berührt wird.Einblenden und Ausblenden in Animation Swift

Dies ist, was ich in verblassen machen

UIView.animateWithDuration(0.5, delay: delay, 
    options: UIViewAnimationOptions.CurveEaseOut, animations: { 
     uiImageView.alpha = 1.0 
     } 
+0

Ihr Problem, dass Sie die Bildansicht nicht ausblenden können, wenn Sie sie während der Einblende-Animation auslösen? –

Antwort

40

Dies ist, was ich auf der Grundlage meiner Forschung tun würde. (Sie verwenden Storyboard Gesetzt) ​​

  1. Gehen Sie zu Ihrem UIImageView Aktivieren Sie unter den Attributen das Kontrollkästchen "Benutzerinteraktion aktiviert".

  2. Ziehen Sie einen TapGestureRecognizer über die Bildansicht.

  3. Klicken Sie auf die Tap-Geste und ziehen Sie, um eine Aktion auf Ihrem ViewControler.swift auszuführen.

  4. Fügen Sie den folgenden Code in:

    UIView.animateWithDuration(0.5, delay: 0.5, options: .curveEaseOut, animations: { 
        self.uiImageView.alpha = 0.0 
        }, completion: nil) 
    

Dann sind Sie fertig!

+0

Welchen Wert brauche ich in der Verzögerung? – PlugInBoy

+0

@PlugInBoy Ich habe den Code in meiner Antwort bearbeitet. Das sollte gut funktionieren. – AntiStrike12

5

Ab iOS 10 startete Apple neue iOS Animations SDK, die viel leistungsfähiger ist, insbesondere in Bezug auf Zeitfunktionen und Interaktivität.

Fade Out-Code mit diesem Ansatz wird:

UIViewPropertyAnimator(duration: 0.5, curve: .easeOut, animations: { 
    self.uiImageView.alpha = 0.0 
}).startAnimation() 

Um weitere Details über die Immobilie Animator zu bekommen, einen Blick auf iOS 10 Animations demo nehmen.

Verwandte Themen