这是一个 UIViewController 子类,用于显示位于前端控制器之后的后端(左侧和/或右侧)视图控制器,受 Facebook 应用程序启发,并且做得很好!
此版本采用了对故事板支持的新方法。
在版本 2.0 中进行了多项更改,可能会破坏您的现有项目。如果您还没有准备好升级,可以继续使用以前的版本。2.0.0 版本之前的最后一个提交被标记为 v1.1.3。接下来描述影响 2.0.0 版本的更改。
不支持 iOS6 及更早版本。此版本只能在 iOS7 上运行
setFrontViewController:animated:
方法不再像以前那样执行。特别是,它不会执行完整的揭示动画。取而代之的是,它只是在可选动画的情况下替换当前位置的前端视图控制器。使用新的 pushFrontViewController:animated:
方法代替对 setFrontViewController:animated:
的先前调用。
已添加对子控制器动画替换的支持。现在,所有以下方法都提供了动画版本的:setRearViewController
、setFrontViewController
以及 setRightViewController
。默认动画效果是交叉溶解。您可以使用 replaceViewAnimationDuration
设置视图控制器替换动画的持续时间。
您可以通过提供实现 UIViewControllerAnimatedTransitioning
协议的对象来创建自定义的视图控制器转换动画。
添加了以下新的代理方法
- (void)revealController:(SWRevealViewController *)revealController willAddViewController:(UIViewController *)viewController forOperation:(SWRevealControllerOperation)operation animated:(BOOL)animated;
- (void)revealController:(SWRevealViewController *)revealController didAddViewController:(UIViewController *)viewController forOperation:(SWRevealControllerOperation)operation animated:(BOOL)animated;
- (id<UIViewControllerAnimatedTransitioning>)revealController:(SWRevealViewController *)revealController animationControllerForOperation:(SWRevealControllerOperation)operation fromViewController:(UIViewController *)fromVC toViewController:(UIViewController *)toVC;
setFrontViewController:animated:
的动画调用都已被pushFrontViewController:animated:
调用所取代。RevealControllerProject示例实现了一个自定义动画控制器(UIViewControllerAnimatedTransitioning
),在替换rightViewController时执行向上滑动过渡。RevealControllerProject3示例使用默认的交叉溶解动画来设置前台控制器。revealViewController
,以获取任何子控制器的父SWRevealViewController
,类似于UIViewController的属性navigationController
。仓库包括以下示例项目,可以用作模板或测试目的
SWRevealViewController仓库尝试提供一个更新的cocoaPods文件和一致的标记版本,但它并没有在cocoapods-specs仓库中积极更新。
安装它的最简单方法是将以下内容复制到您的项目中
在您的项目中
初始化SWRevealViewController
- (id)initWithRearViewController:(UIViewController *)rearViewController frontViewController:(UIViewController *)frontViewController;
设置右侧视图控制器
@property (strong, nonatomic) UIViewController *rightViewController;
动设置前端视图控制器
- (void)pushFrontViewController:(UIViewController *)frontViewController animated:(BOOL)animated;
动画调整前端视图控制器位置。位置可以是:FrontViewPositionLeftSideMostRemoved
、FrontViewPositionLeftSideMost
、FrontViewPositionLeftSide
、FrontViewPositionLeft
、FrontViewPositionRight
、FrontViewPositionRightMost
或FrontViewPositionRightMostRemoved
- (void)setFrontViewPosition:(FrontViewPosition)frontViewPosition animated:(BOOL)animated;
创建和获取pan手势识别器
- (UIPanGestureRecognizer*)panGestureRecognizer;
创建和获取tap手势识别器
- (UITapGestureRecognizer*)tapGestureRecognizer;
其他方法在SWRevealViewController.h头文件中有详细文档。
截止到2013年11月15日,版本更新已发布在类主头文件中。请参阅SWRevealViewController.h
。
AppCoda网站上的一篇在线教程介绍SWRevealViewController:“如何在您的应用中添加滑动侧边栏菜单”(感谢)。您可以在http://www.appcoda.com/ios-programming-sidebar-navigation-menu/ 找到它。虽然不是最新版本,但仍值得一读。
Ray Wenderlich博客上的Tammy Coron编写了一篇关于“如何构建滑动导航面板”的教程。如果您不想自己实现,她推荐使用SWRevealViewController。请参阅http://www.raywenderlich.com/32054/how-to-create-a-slide-out-navigation-like-facebook-and-path
您也可以在http://bcdilumonline.blogspot.com.es/2014/03/drawer-view-ios-app-with.html 上查看“使用SWRevealViewController的Drawer View iOS应用程序”教程,其中逐步介绍了如何安装和使用控制器。对于那些不太熟悉storyboards的人来说,值得一读。
我还找到这篇西班牙语的教程“Sidebar o menu lateral mediante SWRevealViewController”由 wikimovil.es编撰http://wikimovil.es/sidebar-o-menu-lateral-mediante-swrevealviewcontroller-parte-1/,它提供了如何使用Story Boards(在V2.1之前)实现的详细说明。
感谢Jesper Vandborg为此控制器贡献了一个Xamarin绑定项目,该项目可在https://github.com/Vandborg/SWRevealViewController-XamarinBinding 下载。
专门感谢Joan Martin,他曾就职于http://www.sweetwilliamsl.com,并最近为http://www.citizen.tv 开发应用程序。他提出了原始想法,并实现了类中通用的视图部署/卸载和视图控制器替换的代码。
早期代码和API受到了Philip Kluz([email protected])类似类的影响。
版权所有(C)2013 Joan Lluch [email protected]
在此特此许可,免费提供给任何获取本软件及其相关文档文件(以下简称“软件”)的人,以无限制地使用、复制、修改、合并、发布、分发、许可和/或出售软件副本,并允许提供给软件的人进行此类操作,但必须遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或实质部分中。
软件按“原样”提供,不做任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和未经授权的保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论是因合同、侵权或其他原因引起的,出自、源于或与软件或其使用有关。