Ich habe Probleme mit der Ein- und Ausblendung einer Animation.Starten der Überblendungsanimation von einem bestimmten Punkt in einer UIView in Swift
Ich habe eine einfache Einrichtung, auf dem Storyboard habe ich eine UIView
mit dem Namen myView
.
Was ich tun möchte, ist Einblenden myView
, wenn der Benutzer den Bildschirm berührt, und Ausblenden myView
, wenn der Benutzer aufhört, den Bildschirm zu berühren. Ich kann das mit dem unten stehenden Code erreichen. Die Überblendung erfolgt über fünf Sekunden.
Das Problem tritt jedoch auf, wenn der Benutzer anfängt zu berühren oder den Bildschirm während einer Fade-In- oder Fade-Out-Animation nicht mehr berührt.
Wenn zum Beispiel hält der Benutzer den Bildschirm zu berühren, statt die Fade-In-Animation der myView
Fade-In an der aktuellen Position und umgekehrt mit einer Fade-Out-Animation, was geschieht, ist eigentlich myView
alpha
springt anmutig zu stoppen 1.0
vor Beginn der Ausblendung.
Frage:
Was unten Notwendigkeit, auf die Änderungen am Code vorgenommen werden, um sicherzustellen, dass jede neue Animation, Fade-In oder Fade-Out, unterbricht die aktuelle Fade-Animation auf
myView
auftreten und beginnt von der aktuellenalpha
der früheren Fade-Animation?
Code:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var myView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
self.myView.alpha = 0
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
UIView.animateWithDuration(5, delay: 0, options: UIViewAnimationOptions.CurveEaseInOut, animations: {
self.myView.alpha = 1
}, completion: nil)
}
override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
}
override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {
UIView.animateWithDuration(5, delay: 0, options: UIViewAnimationOptions.CurveEaseInOut, animations: {
self.myView.alpha = 0
}, completion: nil)
}
}
Verzeihen Sie mich für das Schimpfen, aber warum in aller Welt würde jemand diese Frage ablehnen? Es ist schön, informativ und klar gefragt. Genau so stellt man eine Frage zu Stack Overflow. Es ist eine _model_ Frage. – matt
Danke, freundlich. Ich versuche, Fragen, die ich stelle, so klar wie möglich zu strukturieren. – user4806509
Absolut. Lassen Sie sich nicht von Downvotes entmutigen. – matt