我正在动画我的navigationBar高度的变化。
let bar = navigationController?.navigationBar
UIView.animate(withDuration: 0.5, animations: { bar?.frame.size.height = 79 }) {
if $0 { print("completed") }
}
为简单起见,我使用的是标准的UIView
动画,但在原始代码中,我使用的选项为allowUserInteraction
。
为防止完成打印出“已完成”,通常我会从动画对象中删除动画:
object.layer.removeAllAnimations()
当它是正常的UIView
并且完成处理程序不会打印任何内容时,它会起作用。但是对于导航栏,它似乎无法正常工作:
bar?.layer.removeAllAnimations()
“删除”了所有动画后,控制台仍打印出:
completed
导航栏有什么不同,为什么我似乎无法删除动画以停止完成处理程序?