Wie kann ich eine Wirkung in schnellen ähnlich dies: Swift Infinite Fade in und Out-Schleife
Ich möchte die Animation Schleife für immer.
Wie kann ich eine Wirkung in schnellen ähnlich dies: Swift Infinite Fade in und Out-Schleife
Ich möchte die Animation Schleife für immer.
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)
}
}
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
Wie mache ich ein Label dies tun? – Alex
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. –
Kannst du das für mich tun? Ich habe ein wenig Schwierigkeiten, diesen Code zu verstehen. – Alex
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)
Sie können die Animationsoptionen '.Repeat' und' .Autoreverse' ausprobieren. –
Wie mache ich ein Label das? – Alex