如何制作宽度不是全屏的 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。我快速浏览了您正在使用的库,似乎每个子视图的框架都设置为窗口的大小,向左或向右偏移一定量(请参阅referenceBounds
、centerViewBounds
的函数和sideViewBounds
)
要将导航控制器更改为完全可见,您需要将其更改为原点相同且宽度为 276.0f,因此我认为您需要修改 sideViewBounds 方法以返回稍小的 CGRect
【讨论】:
你摇滚。就是这样。我会尽快奖励赏金。谢谢!【参考方案2】:如果您想重新实现 Facebook 应用程序的行为,您可能需要节省一些时间并查看以下项目之一:
AwesomeMenu DDMenuController ECSlidingViewController IRSlidingSplitViewController JASidePanels JTRevealSidebarDemo JWSlideMenu PKRevealController SASlideMenu ViewDeck【讨论】:
以上是关于如何制作宽度不是全屏的 UINavigationController?的主要内容,如果未能解决你的问题,请参考以下文章
android 中如何点击一个图标实现另一个界面不是充满全屏的
创建不占用全屏的 UIViewController 时,如何通过在外部点击来关闭它?