在 navigationItem 中停止 animateWithDuration
Posted
技术标签:
【中文标题】在 navigationItem 中停止 animateWithDuration【英文标题】:stop animateWithDuration in navigationItem 【发布时间】:2016-03-09 22:39:21 【问题描述】:我正在尝试为我的navigationItem.rightBarButtonItem
设置动画,使其从绿色到白色反复闪烁......所以我这样做了
UIView.animateWithDuration(1.0, delay:0, options: [.Repeat, .Autoreverse], animations:
self.navigationItem.rightBarButtonItem?.tintColor = .greenColor()
, completion: nil)
正如我在question 中看到的那样
它的工作原理
问题是我正在使用UITabView
,每次我在视图之间切换并返回第一个视图时,都会停止闪烁
我认为这是因为我将一层又一层的动画卡在某个地方
我知道要删除动画我应该使用layer.removeAllAnimations()
问题是我不知道在哪个视图上做它
我试过self.view.layer.removeAllAnimations()
但它没有用。
如何到达我为 navigationItem 动画创建的这一层
所以我可以删除它?
【问题讨论】:
【参考方案1】:我通过重新定位动画的创建来解决这个问题
一开始我把它放在 viewWillAppear 函数中
并且还尝试在此之前将按钮初始化为白色
但它看起来不像那样工作,所以我将动画重新定位到
viewDidAppear 函数并将按钮的初始化设置为白色
在 viewWillAppear 中,它现在似乎可以正常工作了 :)
谢谢
【讨论】:
以上是关于在 navigationItem 中停止 animateWithDuration的主要内容,如果未能解决你的问题,请参考以下文章
navigationItem.setLeftBarButton() 不适用于旧版本
如何在 SwiftUI 中停止 Animation().repeatForever