iOS左滑抽屉视图

在iOS开发中经常碰到类似QQ界面中左滑显示视图的界面,实现这种效果的话可以用一个第三方(RESideMenu)RESideMenu是github上比较出名的一个开源库,主要是实现侧滑菜单.

我们想实现这样的功能:

点击导航栏左边按钮,当前内容视图能够向右滑出一半,于此同时,屏幕左侧会出现一个菜单视图,效果如下图:

话不多说上代码

首先用cocopods  或者在项目中导入第三方RESideMenu

AppDelegate.h中:导入头文件 RESideMenu.h

@property(strong,nonatomic)RESideMenu *sideMenu;



AppDelegate.m中:

#define SCREEN_W [UIScreen mainScreen].bounds.size.width

///屏幕高度的宏

#define SCREEN_H  [UIScreen mainScreen].bounds.size.height

///适配x轴的宏

#define FIT_X(w) (SCREEN_W / 375. * (w))

///适配y轴的宏

#define FIT_Y(h) (SCREEN_H / 667. * (h))

@property (nonatomic,strong)LeftViewController *leftVC; //左侧菜单控制器

@property(nonatomic,strong)ViewController *vc;

@property(nonatomic,strong)UINavigationController *nav;

//左侧菜单

-(LeftViewController *)leftVC{

if (!_leftVC) {

_leftVC = [[LeftViewController alloc]init];

}

return _leftVC;

}

//导航控制器

-(UINavigationController *)nav{

if (!_nav) {

_nav=[[UINavigationController alloc]initWithRootViewController:self.vc];

}

return _nav;

}

//主控制器

-(ViewController *)vc{

if (!_vc) {

_vc = [[ViewController alloc]init];

_vc.view.backgroundColor=[UIColor whiteColor];

}

return _vc;

}

//侧滑控制器

-(RESideMenu *)sideMenu{

if (!_sideMenu) {

//左滑视图

_sideMenu = [[RESideMenu alloc]initWithContentViewController:self.nav leftMenuViewController:self.leftVC rightMenuViewController:nil];

//设置内容试图不可缩放

_sideMenu.scaleContentView = NO;

//设置左滑视图与主界面的间隔

_sideMenu.contentViewInPortraitOffsetCenterX = FIT_X(100);

}

return _sideMenu;

}

self.window.rootViewController=self.sideMenu;




ViewController.m中

viewDidLoad:

//设置导航栏左按钮

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"左滑" style:UIBarButtonItemStylePlain target:self action:@selector(headBtnHandle:)];

//按钮触发方法

-(void)headBtnHandle:(id)sender{

AppDelegate *appDele =(AppDelegate *) [UIApplication sharedApplication].delegate;

[appDele.sideMenu presentLeftMenuViewController];

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容