ios - 如何淡出 iOS 12 上的 titleView 标签

标签 ios swift uikit uiviewanimation ios12

我正在尝试淡出已添加为 UIViewController 的导航项的 titleViewUILabel。在 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/

相关文章:

iphone - 等同于 iphone/iOS 的 [[NSWorkspace sharedWorkspace] runningApplications]?

iphone - iOS 在应用程序中添加日 View 日历

swift -/usr/bin/ld : cannot find -lstdc++ for Ubuntu while trying to "swift build" Perfect2 project

ios - 为什么 UIImageView 只旋转一次?

ios - 如何在 Did DeSelect 中删除字典数组中的值?

swift - UIView 总是落后于 UITableView

ios - 如何在 iOS 6 上设置状态栏色调颜色?

ios - 从谷歌 API 获取附近的地方按距离排序

swift - 在 iOS 13 中将 UIImagePickerController 导航栏设置为不透明

objective-c - 如何实现自定义 UIDynamicBehavior 操作