2016-06-18 8 views

Antwort

1

Ich nehme an, dass Sie für iOS programmieren.

spielen, um mit den duration zu sehen, was Ihnen am besten paßt:

class ViewController: UIViewController { 
    @IBOutlet weak var myView: UIView! 
    let duration = 0.5 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     self.fadeOut(true) 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
    } 

    func fadeIn(finished: Bool) { 
     UIView.animateWithDuration(self.duration, delay: 0, options: [.CurveEaseInOut], animations: { self.myView.alpha = 1 } , completion: self.fadeOut) 
    } 

    func fadeOut(finished: Bool) { 
     UIView.animateWithDuration(self.duration, delay: 0, options: [.CurveEaseInOut], animations: { self.myView.alpha = 0 } , completion: self.fadeIn) 
    } 
} 
+1

Sie können die Animationsoptionen '.Repeat' und' .Autoreverse' ausprobieren. –

+0

Wie mache ich ein Label das? – Alex

5

Für iOS

UIViewAnimationOptions Set bietet verschiedene praktische Optionen eine Kombination von schönen und komplexen Animationen zu erreichen. Für Ihr spezielles Szenario benötigen Sie zwei der Optionen.

UIViewAnimationOptions.Repeat 
UIViewAnimationOptions.AutoReverse 

Überprüfen Sie den folgenden Code für die Implementierung.

-Code:

class MyViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     let view = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 200)) 
     view.backgroundColor = UIColor.blueColor() 
     self.view.addSubview(view) 

     UIView.animateWithDuration(1, 
     delay: 0, 
     options: [UIViewAnimationOptions.Autoreverse, UIViewAnimationOptions.Repeat], 
     animations: { 
       view.backgroundColor = UIColor.clearColor() 
      }, 
     completion: nil) 
    } 

} 

Erläuterung: Ich habe eine Ansicht mit einem bestimmten Rahmen für Demo-Zwecke erstellt.

Der Teil, an dem Sie interessiert sind, ist die UIView.animateWithDuration Methode. Beachten Sie, dass ich im Parameter options ein Array [UIViewAnimationOptions.AutoReverse, UIViewAnimationOptions.Repeat] bereitgestellt habe.

Diese beiden Optionen reichen aus, um eine reibungslose und endlos laufende Animation wie unten zu erreichen. https://s3.amazonaws.com/uploads.hipchat.com/37040/1764070/6Iow7n7WiWf6Naz/autoReverse.gif

Wenn Sie nicht wollen, um die Animation umkehren, nur UIViewAnimationOptions.AutoReverse aus dem Array in dem options Parameter entfernen. Sie werden eine Animation wie diese erhalten. https://s3.amazonaws.com/uploads.hipchat.com/37040/1764070/8fyRUlzqNHSQI47/noreverse.gif

+0

Wie mache ich ein Label dies tun? – Alex

+0

UILabel ist die Unterklasse von UIView. Daher ist es der gleiche Prozess. Anstatt die Ansicht, die ich im Code verwendet habe, ersetzen Sie sie durch ein UILabel. –

+0

Kannst du das für mich tun? Ich habe ein wenig Schwierigkeiten, diesen Code zu verstehen. – Alex

4

Für iOS

lassen viewSquare in Ihrer Frage der Name des blauen Quadrat sein.

UIView.animate(withDuration: 0.5, delay: 0, options: [.repeat,.autoreverse], animations: { 
      viewSquare.alpha = 0.0 
     }, completion: nil)