自定义UINavBar高度(不同视图需要具有不同高度的导航栏)

时间:2016-10-28 10:26:41

标签: ios swift uinavigationbar

我需要实现具有2个不同高度的UINavigationBar。 例:我有两种导航栏1.正常高度2.自定义高度(导航栏高度增加)。我在Swift 2.3工作,我的应用程序支持ios8.0>

我的解决方法:我已经使用自定义高度将UINavigationBar子类化,并将该类分配给导航控制器中的NavigationBar。现在我看到我的所有视图高度都变为自定义高度。但是对于少数视图,我希望导航栏的正常高度(44)能够持续。 我尝试将导航栏框架设置回44(在需要正常高度的视图中)。这里我遇到一个问题,每当我的应用程序进入后台状态并获得活动的NavigationBar设置回自定义高度。 我想要一个解决方案,用一个UINavigationController处理不同高度的UINavigationBar。

附加屏幕截图:Base View

查看1: View 1

查看2: View 2

查看2 :(应用程序生效后) View 2 - screen shot 2

从上面的屏幕截图中,I Base视图是应用程序启动时的登陆视图,此处NavigationBar是自定义的。  1.从BaseView推送视图1此处NavigationBar是自定义栏(我想在此视图中使用自定义栏,此视图中没有问题)  2.从BaseView推出视图2此处NavigationBar是自定义栏,但我仍然希望此视图中栏的默认高度(44),因此在viewWillAppear中我将导航栏框架设置为44.并且它已正确设置  但是,只要应用程序从后台运行,它就会重置回自定义高度(您可以在上一个屏幕截图中看到)

我想要一个解决方案,我可以使用增加高度和默认高度的自定义栏,并根据视图正确使用它们。

1 个答案:

答案 0 :(得分:-1)

首先在选择该视图后设置每个NavigationBar并将其设置为自动调整大小。enter image description here

并在viewWillAppeare方法中隐藏nabvigation bar。

override func viewWillAppear(animated: Bool)
 {
        self.navigationController?.navigationBarHidden = true
 }