如何制作宽度不是全屏的 UINavigationController?

Posted

技术标签:

【中文标题】如何制作宽度不是全屏的 UINavigationController?【英文标题】:How can I make a UINavigationController that is not full screen in width? 【发布时间】:2013-03-28 15:52:29 【问题描述】:

我正在尝试实现 Facebook 样式的后视图菜单导航模式(使用 viewDeck),但我无法使主视图后面的 navigationController 宽度小于屏幕。

由于主视图中仍有一些覆盖,我需要我的 navController 只有 276 pts 宽。这意味着 navController 的右侧将与部分可见的主 viewController 的边缘齐平。

如何缩小我的 navController 以便在主视图后面钻取视图?可能吗?到目前为止,我所做的一切都只是让导航栏全屏显示。

编辑 1:使用 PKRevealController 进行测试:

如您所见,文本消失在屏幕上,您看不到它的结尾。如果你稍微切换一下窗台,你可以看到后视图导航栏一直到边缘。

【问题讨论】:

你的意思是cocoacontrols.com/controls/chslidecontroller 吗? 同样的想法,但我使用的是 IIViewDeckController github.com/Inferis/ViewDeck 【参考方案1】:

可以创建一个小于其所在视图宽度的 UINavigationController。我快速浏览了您正在使用的库,似乎每个子视图的框架都设置为窗口的大小,向左或向右偏移一定量(请参阅referenceBoundscenterViewBounds 的函数和sideViewBounds)

要将导航控制器更改为完全可见,您需要将其更改为原点相同且宽度为 276.0f,因此我认为您需要修改 sideViewBounds 方法以返回稍小的 CGRect

【讨论】:

你摇滚。就是这样。我会尽快奖励赏金。谢谢!【参考方案2】:

如果您想重新实现 Facebook 应用程序的行为,您可能需要节省一些时间并查看以下项目之一:

AwesomeMenu DDMenuController ECSlidingViewController IRSlidingSplitViewController JASidePanels JTRevealSidebarDemo JWSlideMenu PKRevealController SASlideMenu ViewDeck

【讨论】:

以上是关于如何制作宽度不是全屏的 UINavigationController?的主要内容,如果未能解决你的问题,请参考以下文章

android 中如何点击一个图标实现另一个界面不是充满全屏的

创建不占用全屏的 UIViewController 时,如何通过在外部点击来关闭它?

在Dreamweaver 8 中,如何实现全屏显示啊???

如何在Js脚本中,默认打开一个全屏的窗口,

html+css+js制作520表白网页,全屏的爱心和表白语网页动画

横向模式下视频视图不是全屏