アニメーションのフェードインとフェードアウトに問題があります。SwiftのUIViewの特定のポイントからフェードアニメーションを開始します
私は簡単な設定をしていますが、私にはUIView
という名前のmyView
があります。
私がしたいことは、ユーザが画面に触れるとフェードインし、myView
は画面に触れなくなるとフェードアウトします。私は以下のコードでそれを達成することができます。フェードは5秒以上起こります。
しかし、フェードインまたはフェードアウトアニメーションの途中でユーザーがタッチしたりタッチしたりするのをやめ始めると問題が発生します。何実際に発生することにジャンプalpha
myView
でユーザが正常に現在の位置にmyView
フェードインを停止し、フェードアウトアニメーションと反転代わりにフェードインアニメーション、画面に触れる停止例えば
、フェードアウトを開始する前に1.0
。
質問:
、-フェードインやフェードアウトをそれぞれの新しい アニメーションことを確実にするためになされる必要がある次のコードに変更何、現在のフェードアニメーション が
myView
で発生した割り込み、以前のフェードアニメーション の現在のalpha
から始まりますか?
コード:
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)
}
}
私は怒りのために私を許しますが、なぜ地球上誰もこの質問をdownvoteだろうか?それは美しく、有益に、そしてはっきりと尋ねられます。これは、スタックオーバーフローに関する質問をする方法です。 _model_質問です。 – matt
ありがとう、親切。私は可能な限り明確な質問を構造化しようとします。 – user4806509
絶対に。 downvotesによって落胆しないでください。 – matt