增加 UINavigationBar 的高度并添加在推送时持续存在的自定义视图
Posted
技术标签:
【中文标题】增加 UINavigationBar 的高度并添加在推送时持续存在的自定义视图【英文标题】:Increase height of UINavigationBar and add custom view that persists upon push 【发布时间】:2015-07-17 20:32:42 【问题描述】:在我的应用程序中,我目前使用标准 UINavigationController
,并将多个控制器推送到导航堆栈上。现在,我需要能够显示自定义 UIView
(或 UIToolbar even) underneath the
UINavigationBar` 并使其在推送新视图控制器后仍然存在,并按需删除此视图。非常类似于 iTunes 中的歌曲信息和控件商店:
现在我只是将此视图作为子视图添加到顶视图控制器的view
,因此当执行推送时,此自定义视图不再可见。另一个问题是这个自定义视图与视图控制器的view
内容重叠。
有没有办法实现自定义导航栏,扩展其高度,添加子视图?然后当然删除子视图并在视图不再显示时缩小高度?或者在导航栏下方添加一个视图,自动更新各处的内容插图,使其不在其下方?或者还有什么方法可以做到这一点?
我查看了 Apple 的自定义导航栏示例代码。他们有一个带有自定义视图的扩展高度示例,但他们通过将视图添加到单个视图控制器的视图来实现这一点,因此推送不会保留它。
【问题讨论】:
【参考方案1】:您可以将视图添加到导航控制器本身,但在视图之间的转换过程中您必须自己处理动画。
[self.navigationController.view addSubview:overlayView];
【讨论】:
以上是关于增加 UINavigationBar 的高度并添加在推送时持续存在的自定义视图的主要内容,如果未能解决你的问题,请参考以下文章
在 ios 7 中如何增加 UINavigationbar 的大小
使用 UIAppearance 移动 UINavigationBar
UINavigationBar + UITabBar 的可用屏幕高度
Swift - UINavigationBar 有时仅包含在屏幕高度中?