在 navigationItem 中停止 animateWithDuration

stop animateWithDuration in navigationItem

我正在尝试为我的 navigationItem.rightBarButtonItem 设置动画,使其从绿色到白色反复闪烁...所以我这样做了

UIView.animateWithDuration(1.0, delay:0, options: [.Repeat, .Autoreverse], animations: {
    self.navigationItem.rightBarButtonItem?.tintColor = .greenColor()                
}, completion: nil)

如我所见question

有效

问题是我正在使用 UITabView 并且每次我在视图之间切换并且 return 到第一个视图时闪烁停止

我认为这是因为我在某处卡了一层又一层的动画

我知道要删除动画我应该使用 layer.removeAllAnimations()

问题是我不知道在哪个视图上执行此操作

我试过了self.view.layer.removeAllAnimations() 但它没有用。

我如何到达我为 navigationItem 动画创建的这一层

所以我可以删除它吗?

我通过重新定位动画的创建解决了这个问题

一开始我把它放在 viewWillAppear 函数中

并且还尝试在此之前将按钮初始化为白色

但它看起来不像那样工作,所以我将动画重新定位到

viewDidAppear 函数并将按钮的初始化保留为白色

在 viewWillAppear 中,它现在似乎工作正常:)

谢谢