博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS开发UI篇--一个侧滑菜单SlidingMenu
阅读量:6616 次
发布时间:2019-06-25

本文共 3479 字,大约阅读时间需要 11 分钟。

一、简介

侧滑菜单已经成为app一个极常用的设计,不管是事务类,效率类还是生活类app。侧滑菜单因Path 2.0和Facebook为开发者熟知,国内目前也有很多流行app用到了侧滑菜单,比如QQ、网易邮箱、知乎等等。

IOS官方并没有提供类似于侧滑栏之类的组件,所以我们需要自己写一个侧滑栏控件,为了不要重复造轮子,我在github上找到了一个使用简单方便,新手容易入手的侧滑菜单控件,Demo下载地址:这是一个我的iOS交流群:624212887,群文件自行下载,不管你是小白还是大牛热烈欢迎进群 ,分享面试经验,讨论技术, 大家一起交流学习成长!希望帮助开发者少走弯路。

下面我们就是使用上面的控件,来做一个侧滑栏的小Demo,来教大家快速入门侧滑栏控件。

Demo界面演示如下:

二、使用说明

第一步:导入SWRevealViewController.h和SWRevealViewController.m文件

第二步:编写中间显示界面CenterViewController

在viewDidLoad方法中设置SWRevealViewController中的panGestureRecognizer方法,即可实现在主界面上滑动就可以出现左侧或者右侧菜单。设置revealToggle:方法就可以实现点击进行左边菜单和中间界面的切换。设置rightRevealToggle:方法就可以实现右边菜单和中间界面的切换。下面就是中间界面的相关代码:

//注册该页面可以执行滑动切换    SWRevealViewController *revealController = self.revealViewController;    [self.view addGestureRecognizer:revealController.panGestureRecognizer];    // 注册该页面可以执行点击切换    [leftBtn addTarget:revealController action:@selector(revealToggle:) forControlEvents:UIControlEventTouchUpInside];    [rightBtn addTarget:revealController action:@selector(rightRevealToggle:) forControlEvents:UIControlEventTouchUpInside];复制代码

第三步、编写左侧菜单栏LeftViewController

左侧菜单栏是由一个UITableView组成的,我们在每个cell的点击方法中执行 [revealViewController pushFrontViewController:viewController animated:YES];切换中间界面的操作。代码如下:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{    SWRevealViewController *revealViewController = self.revealViewController;    UIViewController *viewController;    switch (indexPath.row) {        case 0:            viewController = [[CenterView1Controller alloc] init];            break;        case 1:            viewController = [[CenterView2Controller alloc] init];            break;        default:            break;    }    [revealViewController pushFrontViewController:viewController animated:YES];}复制代码

第四步、编写右侧菜单栏RightViewController

这里主要演示左侧菜单栏,这里就不做过多描述。就以一个简单的ViewController代替。

第五步、在AppDelegate.m文件中的- (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions方法中配置以上界面,可以分别设置左侧菜单栏、右侧菜单栏和中间首页。

详见代码注释:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];    //左侧菜单栏    LeftViewController *leftViewController = [[LeftViewController alloc] init];    //首页    CenterView1Controller *centerView1Controller = [[CenterView1Controller alloc] init];    //右侧菜单栏    RightViewController *rightViewController = [[RightViewController alloc] init];    SWRevealViewController *revealViewController = [[SWRevealViewController alloc] initWithRearViewController:leftViewController frontViewController:centerView1Controller];    revealViewController.rightViewController = rightViewController;    //浮动层离左边距的宽度    revealViewController.rearViewRevealWidth = 230;    //    revealViewController.rightViewRevealWidth = 230;    //是否让浮动层弹回原位    //mainRevealController.bounceBackOnOverdraw = NO;    [revealViewController setFrontViewPosition:FrontViewPositionLeft animated:YES];    self.window.rootViewController = revealViewController;    self.window.backgroundColor = [UIColor whiteColor];    [self.window makeKeyAndVisible];    return YES;}复制代码

三、总结

接下来准备使用这个界面作为主框架,写一系列关于iOS动画的总结 和 facebook开源动画项目pop动画的使用的博客。敬请期待。

四、下载地址

Demo下载地址:这是一个我的iOS交流群:624212887,群文件自行下载,不管你是小白还是大牛热烈欢迎进群 ,分享面试经验,讨论技术, 大家一起交流学习成长!希望帮助开发者少走弯路。

如果觉得对你还有些用,就关注小编+喜欢这一篇文章。你的支持是我继续的动力。

下篇文章预告:iOS动画的总结

文章来源于网络,如有侵权,请联系小编删除。

转载于:https://juejin.im/post/5bed183ce51d453fba31d385

你可能感兴趣的文章
[LeetCode]--100. Same Tree
查看>>
阿里蒋晓伟谈流计算和批处理引擎Blink,以及Flink和Spark的异同与优势
查看>>
快速掌握Redis——第二招:安装
查看>>
从Jetty、Tomcat和Mina中提炼NIO构架网络服务器的经典模式(一)
查看>>
Windows 10之 隐藏“此电脑”窗口的6个额外文件夹
查看>>
15.1异常处理
查看>>
HAProxy负载均衡web服务
查看>>
初学者学习Linux之NFS
查看>>
Rabbitmq学习(一) Rabbitmq初探
查看>>
8月第一周B2B类网站排名:阿里巴巴持续领先
查看>>
IDC评述网:12月下旬国内域名注册商净增量Top10
查看>>
5月第一周全球域名解析商Top15:万网升至第7名
查看>>
架构优化 - 应用,MQ Broker,业务处理分层
查看>>
3月第3周网络安全报告:被篡改.COM网站占74.3%
查看>>
Spring Security之用户名+密码登录
查看>>
java JSplitPane设置比例
查看>>
批量操作Windows域用户
查看>>
shell脚本 接受用户参数 记录一下
查看>>
健脾祛湿的中成药有哪些?
查看>>
mongodb Index(2)
查看>>