推送期间导航栏上的奇怪动画
Strange animation on the navigation bar during push
我有如下故事板。
当我点击“Push ViewController 2”时,出现了一个奇怪的动画
我将 NavigationController.view.backgroundColor 或 TabBarController.view.background 设置为白色。但它不起作用。
我不想将 navigationBar.translucent 设置为 NO。
我怎样才能摆脱它?
您没有在 navigationBar
下扩展视图控制器 (在导航中推送)(这就是为什么您看到模糊红色视图控制器 - 这是前一个 - 在栏下方).
设置您的 edgesForExtendedLayout
和 extendedLayoutIncludesOpaqueBars
。在这种情况下,navigationBar.isTranslucent
也必须是 true
。
或者您可以关闭 navigationBar
的半透明效果并将其颜色设置为您想要的任何颜色。
设置以下Animates
勾选取消勾选
当您在 TabView application
中使用 NavigationController 时。将 NavigationController 分别嵌入每个 ViewController 以避免异常行为是一种常见的做法,它还为您提供了一种更好的方法来控制单独实例中的 NavigationController
。按照情节提要布局修复奇怪的动画。
输出:
PS: @skJosh 评论也提到了同样的想法。
更新:
将下面的代码粘贴到您的 DetailViewController
中以隐藏和取消隐藏您的 TabBar。
override func viewWillAppear(_ animated: Bool) {
tabBarController?.tabBar.isHidden = true
}
override func viewWillDisappear(_ animated: Bool) {
tabBarController?.tabBar.isHidden = false
}
我有如下故事板。
当我点击“Push ViewController 2”时,出现了一个奇怪的动画
我将 NavigationController.view.backgroundColor 或 TabBarController.view.background 设置为白色。但它不起作用。 我不想将 navigationBar.translucent 设置为 NO。
我怎样才能摆脱它?
您没有在 navigationBar
下扩展视图控制器 (在导航中推送)(这就是为什么您看到模糊红色视图控制器 - 这是前一个 - 在栏下方).
设置您的 edgesForExtendedLayout
和 extendedLayoutIncludesOpaqueBars
。在这种情况下,navigationBar.isTranslucent
也必须是 true
。
或者您可以关闭 navigationBar
的半透明效果并将其颜色设置为您想要的任何颜色。
设置以下Animates
勾选取消勾选
当您在 TabView application
中使用 NavigationController 时。将 NavigationController 分别嵌入每个 ViewController 以避免异常行为是一种常见的做法,它还为您提供了一种更好的方法来控制单独实例中的 NavigationController
。按照情节提要布局修复奇怪的动画。
输出:
PS: @skJosh 评论也提到了同样的想法。
更新:
将下面的代码粘贴到您的 DetailViewController
中以隐藏和取消隐藏您的 TabBar。
override func viewWillAppear(_ animated: Bool) {
tabBarController?.tabBar.isHidden = true
}
override func viewWillDisappear(_ animated: Bool) {
tabBarController?.tabBar.isHidden = false
}