测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可证 | MIT |
发布最新版本 | 2014年12月 |
由Eric Horacek维护。
MSNavigationPaneViewController 由 Eric Horacek 编写,供 Monospace Ltd. 使用。
MSNavigationPaneViewController
是一个视图控制器,用于处理两个重叠子视图控制器的展示。"面板"视图可以通过滑动手势移动以显示下面的"主"视图。这种界面范式可以轻松实现 Facebook、Path 等许多应用的导航功能。
以下是一些使用 MSNavigationPaneViewController
而不是众多类似重叠视图控制器类的原因:
UITableViews
或其他 UIScrollViews
。setPaneViewController:animated:completion:
方法设置新的面板视图控制器时,它会先向右动画移出,替换,然后动画回到左边。这防止了当新的面板视图控制器替换当前视图时产生令人不适的"弹出"效果。左边(MSNavigationPaneOpenDirectionLeft
)- 默认打开方向。导航面板从左侧打开。左右滑动也可以显示主视图。
顶部(MSNavigationPaneOpenDirectionTop
)- 导航面板从顶部打开。上下滑动也可以显示主视图。
为 MSNavigationPaneViewController
提供了几种外观类型。它们各自改变了拖动面板视图时面板视图视觉风格的某些方面。通过 navigationPaneViewController.appearanceType
访问器设置导航面板的外观类型。可能的类型如下:
MSNavigationPaneAppearanceTypeNone
)- 默认外观。拖动面板视图时,不会以任何方式改变主视图的外观。MSNavigationPaneAppearanceTypeParallax
)- 当拖动面板视图时,从右侧滚动主视图。MSNavigationPaneAppearanceTypeZoom
)- 当拖动面板视图时,从缩进状态缩放主视图。外观类型的默认值是 MSNavigationPaneAppearanceTypeNone
。
为了通过需要滑动/平移手势的视图转发触摸,以便 MSNavigationPaneViewController
不拦截它们,只需将它们的 Class
添加到 touchForwardingClasses
[navigationPaneViewController.touchForwardingClasses addObject:UISwitch.class];
默认情况下,包含 UISlider
和 UISwitch
。
要禁用面板拖动并防止 MSNavigationPaneViewController
拦截触摸,设置
navigationPaneViewController.draggingEnabled == NO;
“示例”目录中包含了 MSNavigationPaneViewController
的两个示例,要运行它们,请打开 Examples.xcworkspace
示例项目依赖于 PRTween
,它是作为 git 子模块包含的。要安装,请运行以下命令
$ git submodule init
$ git submodule update
Example.xcodeproj
- 不使用 Storyboards 或 NibsStoryboard Example.xcodeproj
- 与 Storyboards 一起使用需要 iOS 5.0、ARC 和 QuartzCore 框架。
欢迎 forks、patches 和其他反馈。
版权所有(c)2012-2013 Monospace Ltd。保留所有权利。
此代码根据 MIT 许可证的条款和条件分发。
本许可证授权任何人免费获取本软件及其相关文档文件(统称为“软件”)的副本,用以处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件的副本以及允许软件提供者进行上述操作,前提是遵守以下条件:
上述版权声明和本许可证声明应包含在软件的所有副本或其实质性部分中。
软件按其当前状态提供,不提供任何形式的明示或暗示保证,包括但不限于适销性、特定目的适用性和非侵权性。在任何情况下,原作者或版权所有者对任何索赔、损害或其他责任,无论源于合同、侵权或其他原因,因软件或其使用或其他事宜而引发、产生或与其相关,均不承担任何责任。