如何在iOS 12上淡出titleView标签

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在iOS 12上淡出titleView标签相关的知识,希望对你有一定的参考价值。

我试图淡出一个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中实现这一淡出效果?

答案

只需使用UIView.animate块并为标题视图的alpha设置动画。

UIView.animate(withDuration: 0.5, delay: 0, options: .transitionCrossDissolve, animations: {
    self.navigationItem.titleView?.alpha = 0
})

以上是关于如何在iOS 12上淡出titleView标签的主要内容,如果未能解决你的问题,请参考以下文章

我的 UINavigationitem 的 TitleView 在 ios 6 中得到扩展

iOS 11 navigationItem.titleView 宽度未设置

如何使标签快速淡入或淡出

无法定位自定义navigationItem titleView

如何基于 nib 文件创建 UINavigationItem.TitleView?

iOS中navigationItem的titleView如何居中