一直没做过侧滑栏的功能, 最近闲来无事, 在gitbub上寻找有没有好点的第三方侧滑的, 发现了一个很好地侧滑第三方, 有五百多颗星, 但是作者没有做功能介绍, 只是把代码放在了上面, 看了两天, 把看到了东西, 记录下来. 方便以后查看.
先把源码的地址发上来:https://github.com/romaonthego/RESideMenu
曾经看到过一篇文章, 叶大神博客的一篇的关于RESideMenu源码的讲解的博客, 把链接发出来, 有想法的人可以去看看http://www.jianshu.com/p/99e8b3f6f377
现在开始我的笔记了
因为我只想要左滑, 不想要右滑, 所以就以左滑为例
1. 创建RESideMeue
sideMenuViewController.menuPreferredStatusBarStyle = 1; // 状态栏的样式
sideMenuViewController.delegate = self;//设置代理
sideMenuViewController.animationDuration = 0.35f;//设置动画的时间 默认 0.35f
sideMenuViewController.backgroundImage = [UIImage imageNamed:@"Stars"]; //设置侧滑栏的背景图片,
//下面这段代码都是设置内容视图的阴影的, 看下意思大概就能明白了
sideMenuViewController.contentViewShadowColor = [UIColor blackColor];
sideMenuViewController.contentViewShadowOffset = CGSizeMake(0, 0);
sideMenuViewController.contentViewShadowOpacity = 0.6;
sideMenuViewController.contentViewShadowRadius = 12;
sideMenuViewController.contentViewShadowEnabled = YES;
sideMenuViewController.contentViewScaleValue = 0.7;
sideMenuViewController.panGestureEnabled=YES; //是否支持手势滑动, 默认yes
sideMenuViewController.panFromEdge = YES;//这个没理解 默认yes
sideMenuViewController.panMinimumOpenThreshold = 60.0;//滑动到哪个距离自动打开侧滑栏 默认60.0
sideMenuViewController.interactivePopGestureRecognizerEnabled=YES;//默认YES 进入到菜单栏的其他页面手势返回的时候是否返回到菜单栏 NO的时候返回菜单栏
sideMenuViewController.fadeMenuView = YES; //默认YES 菜单栏的透明度慢慢增加, 背景视图慢慢消失 可以去除掉背景图片的影响
sideMenuViewController.scaleContentView = YES; //默认YES NO 半拉菜单栏 YES全部显示菜单栏 这里可以两用
sideMenuViewController.scaleBackgroundImageView = YES; //默认YES 是否缩放背景图片
sideMenuViewController.scaleMenuView=YES; //默认YES 是否缩放菜单栏
//下面这段代码都是设置内容视图的阴影的, 看下意思大概就能明白了
sideMenuViewController.contentViewShadowColor = [UIColor blackColor];
sideMenuViewController.contentViewShadowOffset = CGSizeMake(0, 0);
sideMenuViewController.contentViewShadowOpacity = 0.6;
sideMenuViewController.contentViewShadowRadius = 12;
sideMenuViewController.contentViewShadowEnabled = YES;
sideMenuViewController.contentViewScaleValue = 0.7f;//主页面的缩放度数 越小主页面越小 默认0.7
//这两个值没理解什么意思, 越大距离左侧屏幕越远
sideMenuViewController.contentViewInLandscapeOffsetCenterX = 30.0f; //默认30.0f
sideMenuViewController.contentViewInPortraitOffsetCenterX = 30.0f; //默认30.0f
//这两个值也没理解什么意思, 先标注等把源码看一遍再说
sideMenuViewController.parallaxMenuMaximumRelativeValue = 15; //默认15
sideMenuViewController.parallaxMenuMinimumRelativeValue = -15;
//也是没理解
sideMenuViewController.parallaxContentMaximumRelativeValue = 25; //默认25
sideMenuViewController.parallaxContentMinimumRelativeValue = -25;
//也是没理解
sideMenuViewController.menuViewControllerTransformation =CGAffineTransformMakeScale(1.5, 1.5); //默认1.5 1.5
//没理解
sideMenuViewController.parallaxEnabled = YES;//默认yes
sideMenuViewController.bouncesHorizontally=NO;//默认yes 是否支持过度拉伸
上面是一些自己对里面的一些参数的理解, 但是有些还是没理解透彻, 希望一次高手可以给我留言解析一 下,
下面来说说自己在使用当中遇到的一些问题
1. 我想实现的效果是类似于旧版QQ那种左滑出现菜单栏, 点击任意一个菜单, 进入到页面, 手势返回的时候, 不是返回到菜单栏, 而是返回到主页面, 这里当初遇到了一些小麻烦, 看看我解决的方法
用contentViewController来切换视图, 就可以避免那个麻烦
XMExpenseRecordeViewController*vc=[[XMExpenseRecordeViewController alloc]init];
UINavigationController* nav = (UINavigationController*)self.sideMenuViewController.contentViewController;
[self.sideMenuViewController hideMenuViewController];
[nav pushViewController:vc animated:YES];