带有大标题的导航栏上的动画segue错误

Posted

技术标签:

【中文标题】带有大标题的导航栏上的动画segue错误【英文标题】:Animation segue bug on the navigation bar with large title 【发布时间】:2018-10-28 12:10:29 【问题描述】:

我的错误:

如果从启用大标题的视图控制器导航到禁用大标题的视图控制器,我会看到相同的错误。高度导航栏变化不流畅。

我希望在这样的另一个 viewController 上的 segue 期间动画更改高度 navBar

在 BaseNavigationController 中设置的 navBar 的通用属性

class BaseNavigationController: UINavigationController 

override var preferredStatusBarStyle: UIStatusBarStyle 
    return .lightContent


override func viewDidLoad() 
    super.viewDidLoad()

    setNavBarTitlesPropertyes()


override func viewDidAppear(_ animated: Bool) 
    super.viewDidAppear(animated)


private func setNavBarTitlesPropertyes() 
    navigationBar.tintColor = .white
    navigationBar.titleTextAttributes = [
        .foregroundColor: UIColor.white
    ]
    if #available(ios 11.0, *) 
        navigationBar.prefersLargeTitles = true

        navigationBar.largeTitleTextAttributes = [
            .foregroundColor: UIColor.white
        ]
    

还有我在故事板中的设置导航栏:

【问题讨论】:

【参考方案1】:

我找到了解决这个问题的方法。 UI导航栏 属性 translucent 应该是 true,并且 UIViewController 中 tableView 的底部和顶部约束应该相应地等于 Superview.Top 和 Superview.Bottom。

【讨论】:

以上是关于带有大标题的导航栏上的动画segue错误的主要内容,如果未能解决你的问题,请参考以下文章

Push Segue 后在导航栏上添加 UIView

在导航栏上切换不透明度动画

导航栏上的后退按钮故障/错误

iOS:删除 UINavigationBar 动画

使用CSS在导航栏上滑动(动画)bg图像位置

在带有标题的操作栏上创建导航抽屉