SNDrawerViewController 支持左抽屉,支持右抽屉,支持左右双抽屉。并且可以定制抽屉大小以及主界面的尺寸,因为它只是一个抽屉控制器框架没有任何的子视图,所以它的外观完全需要定制。
SNDrawerViewController 可以通过CocoaPods获得。在您的Podfile中:
pod 'SNDrawerViewController'
或者找到文件‘Drawers’直接拖入您的工程
- iOS 7.0以上版本
- Xcode 8.0+
SNDrawerViewController是由一个根控制器分别持有左抽屉控制器、主页控制器、右抽屉控制器组成。以屏幕边缘手势来控制两个抽屉的出现,同时支持拖拽手势。主页和抽屉控制器均交于外部实现,增强了扩展性。并且提供了一套基础设置API。
首先import ‘SNDrawerViewController.h’。创建主页和抽屉的Controller,并加载。
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;
然后分别在你所创建的主页和抽屉Controller中去编写你的界面逻辑。
以下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。