我正在尝试淡出一个UILabel,它已经被添加为UIViewController的导航项的titleView。在iOS 11及更低版本上,下面的代码正确地淡出了标签。运行在iOS 12上时,动画中的淡出效果很好,但是淡出没有动画效果--视图立即消失。
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中实现这一目标?
发布于 2018-09-16 16:31:55
只需使用一个UIView.animate块并动画标题视图的alpha。
UIView.animate(withDuration: 0.5, delay: 0, options: .transitionCrossDissolve, animations: {
self.navigationItem.titleView?.alpha = 0
})https://stackoverflow.com/questions/52355841
复制相似问题