在 swift 中移除动画
Remove animation in swift
我有一个文本字段,用户应该在其中输入信息。以及将用户指向文本字段的标签(如提示)。
我想在用户按下文本字段输入数据后停止动画并删除提示标签。
文本标签上有重复动画。创建者:
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({[=11=].layer.removeAllAnimations()})
self.view.layer.removeAllAnimations()
self.view.layoutIfNeeded()
}
我有一个文本字段,用户应该在其中输入信息。以及将用户指向文本字段的标签(如提示)。
我想在用户按下文本字段输入数据后停止动画并删除提示标签。
文本标签上有重复动画。创建者:
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({[=11=].layer.removeAllAnimations()})
self.view.layer.removeAllAnimations()
self.view.layoutIfNeeded()
}