首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从iOS 15上的非透明导航栏导航到具有透明导航条的视图控制器

从iOS 15上的非透明导航栏导航到具有透明导航条的视图控制器
EN

Stack Overflow用户
提问于 2021-09-29 14:28:45
回答 1查看 692关注 0票数 6

在iOS 15上,当导航到具有透明导航条的视图控制器时,到透明栏的动画不像预期的那样工作。

但是,如果您使用透明导航栏导航回视图控制器,则动画将按预期工作。

这就是我如何设置视图控制器的方法:

rootVC

代码语言:javascript
复制
let appearance = UINavigationBarAppearance()
appearance.configureWithDefaultBackground()
appearance.backgroundColor = UIColor.red

self.navigationController?.navigationBar.standardAppearance = appearance
self.navigationController?.navigationBar.scrollEdgeAppearance = self.navigationController?.navigationBar.standardAppearance

firstVC

代码语言:javascript
复制
let appearance = UINavigationBarAppearance()
appearance.configureWithTransparentBackground()

self.navigationController?.navigationBar.standardAppearance = appearance
self.navigationController?.navigationBar.scrollEdgeAppearance = self.navigationController?.navigationBar.standardAppearance

secondVC

代码语言:javascript
复制
let appearance = UINavigationBarAppearance()
appearance.configureWithDefaultBackground()
appearance.backgroundColor = UIColor.yellow

self.navigationController?.navigationBar.standardAppearance = appearance
self.navigationController?.navigationBar.scrollEdgeAppearance = self.navigationController?.navigationBar.standardAppearance

注意,在下面的示例中,从secondVC -> firstVCrootVC -> firstVC的过渡是多么顺利。

示例项目:https://github.com/karlingen/NavigationTest

知道它为什么会这样吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-04 08:11:12

苹果公司给我的答复如下:

您应该使用每项定制获得更好的行为,即在视图控制器的UINavigationItem上设置这些属性,而不是在UINavigationBar本身上设置这些属性。这也使您摆脱了viewWillAppear:方法工作所需的严格时间--只要您的自定义在视图控制器被推送之前被应用,您就应该得到一个良好的转换。当使用每项自定义支持时,viewDidLoad通常是进行这些自定义的好地方。

因此,我们应该使用UINavigationItem代替。使用以下代码为我修复了它:

代码语言:javascript
复制
# firstVC.swift    
override func viewDidLoad() {
    let appearance = UINavigationBarAppearance()
    appearance.configureWithTransparentBackground()
    
    self.navigationItem.standardAppearance = appearance
    self.navigationItem.scrollEdgeAppearance = appearance
}
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69378367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档