ios开发中,展示类应用通常要用到抽屉效果,由于项目需要,本人找到一个demo,缩减掉一些不常用的功能,整理出一个较短的实例。

首先需要给工程添加第三方类库

MMDrawerController:

这里讲的实例只加入了左滑抽屉。右滑和左滑只是初始化时多添加一个右视图控制器,其他方法基本相同。

下面是用手势实现抽屉的拉出和收回

1.初始化跟视图控制器时,在AppDelegate中导入头文件

#import "MMDrawerController.h"

2.初始化方法先初始化左视图和中心视图,也就是图中的

BoutiqueCollectionViewController

LeftDrawerTableViewController

3.初始化完两个子视图控制器后,初始化抽屉根视图控制器MMDrawerController,初始化抽屉控制器时需要将左视图控制器和中心视图控制器添加到抽屉视图控制器上。

//CollectionView的样式
   
UICollectionViewFlowLayout * flowLayout =
[[UICollectionViewFlowLayout alloc] init];

//初始化中心视图
   
BoutiqueCollectionViewController * boutiqueCVC =
[[BoutiqueCollectionViewController alloc]
initWithCollectionViewLayout:flowLayout];
   
boutiqueCVC.collectionView.backgroundColor = [UIColor
whiteColor];
   
UINavigationController * boutiqueNC = [[UINavigationController
alloc] initWithRootViewController:boutiqueCVC];

//初始化左视图
   
LeftDrawerTableViewController * leftTVC =
[[LeftDrawerTableViewController alloc] init];
   
UINavigationController * leftNC = [[UINavigationController alloc]
initWithRootViewController:leftTVC];

//初始化抽屉视图控制器
   
MMDrawerController * drawerController = [[MMDrawerController alloc]
initWithCenterViewController:boutiqueNC
leftDrawerViewController:leftNC];

//设置抽屉抽出的宽度
   
drawerController.maximumLeftDrawerWidth = 200;

4.初始化完成之后添加滑动手势,通过滑动手势拉出和收回抽屉。手势封装在第三方类库中,程序如下。

//滑动手势快关抽屉
   
[drawerController
setOpenDrawerGestureModeMask:MMOpenDrawerGestureModeAll];
   
[drawerController
setCloseDrawerGestureModeMask:MMCloseDrawerGestureModeAll];

self.window.rootViewController = drawerController;

到此,将抽屉根视图控制器添加到window的根视图控制器上,运行程序,就可以实现用手势来控制抽屉的拉出和收回。

如果需要用按钮控制拉出和收回抽屉,需要加上下面的部分。

1.在中心视图控制器中添加头文件

#import "UIViewController+MMDrawerController.h"//第三方封装的头文件
#import "MMDrawerBarButtonItem.h"//第三方封装的头文件
#import "LeftDrawerTableViewController.h"、、左视图头文件

2.在viewDidLoad中实现添加左抽屉控制按钮的方法

[self setupLeftMenuButton];//在viewDidLoad中实现添加左抽屉控制按钮的方法

3.在下面实现添加按钮的方法

-(void)setupLeftMenuButton
{
    //创建按钮
   
MMDrawerBarButtonItem * leftDrawerButton = [[MMDrawerBarButtonItem
alloc] initWithTarget:self
action:@selector(leftDrawerButtonPress:)];

//为navigationItem添加LeftBarButtonItem
   
[self.navigationItem setLeftBarButtonItem:leftDrawerButton
animated:YES];
}

4.在下面实现抽屉按钮的动作方法。

//抽屉按钮动作
-(void)leftDrawerButtonPress:(id)sender
{
   
//开关左抽屉
   
[self.mm_drawerController toggleDrawerSide:MMDrawerSideLeft
animated:YES completion:nil];
}

ios开发中超简单抽屉效果(MMDrawerController)的实现的更多相关文章

  1. iOS中 超简单抽屉效果(MMDrawerController)的实现

    ios开发中,展示类应用通常要用到抽屉效果,由于项目需要,本人找到一个demo,缩减掉一些不常用的功能,整理出一个较短的实例. 首先需要给工程添加第三方类库 MMDrawerController: 这 ...

  2. iOS开发——实用技术OC篇&简单抽屉效果的实现

    简单抽屉效果的实现 就目前大部分App来说基本上都有关于抽屉效果的实现,比如QQ/微信等.所以,今天我们就来简单的实现一下.当然如果你想你的效果更好或者是封装成一个到哪里都能用的工具类,那就还需要下一 ...

  3. iOS开发UI篇—iOS开发中三种简单的动画设置

    iOS开发UI篇—iOS开发中三种简单的动画设置 [在ios开发中,动画是廉价的] 一.首尾式动画 代码示例: // beginAnimations表示此后的代码要“参与到”动画中 [UIView b ...

  4. ios 开发中 动态库 与静态库的区别

    使用静态库的好处 1,模块化,分工合作 2,避免少量改动经常导致大量的重复编译连接 3,也可以重用,注意不是共享使用 动态库使用有如下好处: 1使用动态库,可以将最终可执行文件体积缩小 2使用动态库, ...

  5. iOS开发中调试小技巧

    对于软件开发而言,调试是必须学会的技能,重要性不言而喻.对于调试的技能,基本上是可以迁移的,也就是说你以前在其他平台上掌握的很多调试技巧,很多也是可以用在iOS开发中.不同语言.不同IDE.不同平台的 ...

  6. iOS开发UI篇—简单的浏览器查看程序

    iOS开发UI篇—简单的浏览器查看程序 一.程序实现要求 1.要求 2. 界面分析 (1) 需要读取或修改属性的控件需要设置属性 序号标签 图片 图片描述 左边按钮 右边按钮 (2) 需要监听响应事件 ...

  7. iOS开发UI篇—简单介绍静态单元格的使用

    iOS开发UI篇—简单介绍静态单元格的使用 一.实现效果与说明 说明:观察上面的展示效果,可以发现整个界面是由一个tableview来展示的,上面的数据都是固定的,且几乎不会改变. 要完成上面的效果, ...

  8. iOS开发中的4种数据持久化方式【一、属性列表与归档解档】

    iOS中的永久存储,也就是在关机重新启动设备,或者关闭应用时,不会丢失数据.在实际开发应用时,往往需要持久存储数据的,这样用户才能在对应用进行操作后,再次启动能看到自己更改的结果与痕迹.ios开发中, ...

  9. 多线程在iOS开发中的应用

    多线程基本概念 01 进程 进程是指在系统中正在运行的一个应用程序.每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内. 02 线程 2-1 基本概念 1个进程要想执行任务,必须得有线程 ...

随机推荐

  1. Qt:禁止qDebug的输出

    Qt:禁止qDebug的输出 在工程的.pro文件里加上以下编译批令即可: DEFINES += QT_NO_DEBUG_OUTPUT

  2. 黑金开发板上开发的PWM

    /*自己做的PWM程序*2014-01-09*/module pwm(clk,rst,led);input clk,rst;output [7:0] led;parameter T=31'd20000 ...

  3. 转Oracle字符集问题总结

    Oracle字符集问题总结 分类: Oracle2006-06-04 13:48 1298人阅读 评论(3) 收藏 举报 oracle数据库sqlcharacter存储insert 作者: vston ...

  4. vc++编程之在程序中加入网址链接

    在vc++对话框编程中,我们处于某种需要(介绍自己的软件或者自己的博客)可以在对话框上增加一个网址链接,用户只要一点击,就进入了相应的网页,我在此演示下如何完成. 1 打开编译器,我们新建一个基于对话 ...

  5. Protocol-SPI协议

    说明.文章摘自:SPI协议及其工作原理浅析 http://bbs.chinaunix.net/thread-1916003-1-1.html 一.概述. SPI,Serial Peripheral I ...

  6. Notes of the scrum meeting(12.7)

    meeting time:18:30~19:10p.m.,December 7th,2013 meeting place:3号公寓一层 attendees: 顾育豪                   ...

  7. 关于Liferay所有的能够进行自定义和扩展的东西的总结

    非常超级什么有用的东西,amazing. 虽然不是宝宝写的. Fantastic Extension Points - And Where to Find Them

  8. js判断浏览器滚动条是否拉到底

    $(window).scroll(function(){ // 当滚动到最底部以上n像素时, 加载新内容 if ($(document).height() - $(this).scrollTop() ...

  9. linux打包压缩命令汇总

    tar命令 [root@linux ~]# tar [-cxtzjvfpPN] 文件与目录 ....参数:-c :建立一个压缩文件的参数指令(create 的意思):-x :解开一个压缩文件的参数指令 ...

  10. Surface Pro 3 扩展坞体验

    Surface Pro 3 的确是Microsoft的诚意之作,虽然价格不便宜,但值得入手. 买完Surface Pro 3 后,没事在某网站上闲逛,这货(扩展坞)映入我的眼帘,看完后,心想,这货必须 ...