SNDrawerViewController
SNDrawerViewController 支持左抽屉、右抽屉和左右双抽屉。可以自定义抽屉大小以及主界面的尺寸,因为它只是一个抽屉控制器框架没有任何的子视图,所以它的外观完全需要定制。
安装
SNDrawerViewController 可通过 CocoaPods 获得。在您的 Podfile 中:
pod 'SNDrawerViewController'
或者将 'Drawers' 文件直接拖入您的工程中。
要求
- iOS 7.0以上版本
- Xcode 8.0+
介绍
SNDrawerViewController 由一个根控制器组成,分别持有左抽屉控制器、主页控制器、右抽屉控制器。通过屏幕边缘的手势来控制两个抽屉的出现,同时支持拖拽手势。主页和抽屉控制器均需外部实现,增强了扩展性,并提供了一套基本的设置 API。
使用
首先导入 'SNDrawerViewController.h'。创建主页和抽屉的控制器,并加载。
SNDrawerViewController *SNDrawerVC = [[SNDrawerViewController alloc] initWithMainViewController:[[MainViewController alloc] init]
leftViewController:[[LeftViewController alloc] init]
rightViewController:[[RightViewController alloc] init]];
/* configure your drawer */
[self addChildViewController:SNDrawerVC];
[self.view addSubview:SNDrawerVC.view];
如果只有左抽屉,请使用以下API
/**
左抽屉初始化
@param mainViewController 主视图控制器
@param leftViewController 左抽屉控制器
@return SNDrawerViewController
*/
- (instancetype)initWithMainViewController:(UIViewController *)mainViewController leftViewController:(UIViewController *)leftViewController;
然后,分别在您创建的主页和抽屉控制器中编写您的界面逻辑。
以下API用于解决外部手势冲突所抛出的问题
/**
屏幕边缘手势,用于打开左右抽屉。
*/
@property (nonatomic, strong, readonly) UIScreenEdgePanGestureRecognizer *gestureOfOpeningLeftDrawer;
@property (nonatomic, strong, readonly) UIScreenEdgePanGestureRecognizer *gestureOfOpeningRightDrawer;
/**
左右抽屉拖拽手势,用于打开左右抽屉,加载在viewcontroller上的。
*/
@property (nonatomic, strong, readonly) UIPanGestureRecognizer *panGestureOfOpeningLeftDrawer;
@property (nonatomic, strong, readonly) UIPanGestureRecognizer *panGestureOfOpeningRightDrawer;
许可证
SNDrawerViewController是在MIT许可证下发布的。有关详细信息,请参阅LICENSE。