我正在尝试淡出已添加为 UIViewController
的导航项的 titleView
的 UILabel
。在 iOS 11 及以下版本中,以下代码可以正确淡出标签。在 iOS 12 上运行时,淡入 动画有效,但淡入淡出 没有动画 - View 立即消失。
let fadeTextAnimation = CATransition()
fadeTextAnimation.type = .fade
fadeTextAnimation.duration = 0.5
navigationItem.titleView!.layer.add(fadeTextAnimation, forKey: nil)
(navigationItem.titleView as! UILabel).isHidden = didShowNavigationItemTitle
我也尝试过更改代码以使用 UIView.transition
,但观察到相同的行为。
UIView.transition(with: navigationItem.titleView!,
duration: 0.5,
options: .transitionCrossDissolve,
animations: {
(self.navigationItem.titleView as! UILabel).isHidden = self.didShowNavigationItemTitle
}, completion: nil)
如何在 iOS 12 中实现这种淡出效果?
最佳答案
只需使用 UIView.animate
block 并为标题 View 的 alpha 设置动画。
UIView.animate(withDuration: 0.5, delay: 0, options: .transitionCrossDissolve, animations: {
self.navigationItem.titleView?.alpha = 0
})
关于ios - 如何淡出 iOS 12 上的 titleView 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52355841/