ユーザーが情報を入力するテキストフィールドがあります。また、ユーザーにテキストフィールドを指すラベル(ヒントなど)。
ユーザーがテキストフィールドを押してデータを入力したら、アニメーションを停止し、ヒントラベルを削除します。
テキストラベルに繰り返しアニメーションがあります。作成者:
override func viewDidLoad() {
super.viewDidLoad()
textInput.addTarget(self, action: #selector(CalculatorViewController.removeAnimation(_:)), forControlEvents: UIControlEvents.TouchDown)
self.hintLabel.alpha = 0.0
UIView.animateWithDuration(1.5, delay: 0, options: .Repeat
, animations: ({
self.hintLabel.alpha = 1.0
}), completion: nil
)
その後、注釈を削除する関数を作成しました
func removeAnimation(textField: UITextField) {
view.layer.removeAllAnimations()
self.view.layer.removeAllAnimations()
print("is it working?!")
}
ドキュメントに従って動作するはずです。
コンソールに文字列が印刷されていても、ラベルが点滅し続けます。問題はアニメーションが繰り返されることですが、この問題を解決する方法が分からないということです。
//Just remove the animation from the label. It will Work
func remove()
{
self.hintLabel.layer.removeAllAnimations()
self.view.layer.removeAllAnimations()
self.view.layoutIfNeeded()
}
更新:
核に行きたいのなら、これもできます:
func nukeAllAnimations() {
self.view.subviews.forEach({$0.layer.removeAllAnimations()})
self.view.layer.removeAllAnimations()
self.view.layoutIfNeeded()
}