学习方法,看readme,看给的Demo

看功能怎么实现的去模仿,个人感觉模仿是最快的学习方法

废话少说,上代码

导入MMDrawerController框架我就不多少了,之后做什么才是我们才关注的事情

首先介绍一下框架的基本机构,框架有中心,左右三个controller 所以要创建三个controller ,将三个控制器放在框架的指定位置即可,看代码理解

#import "AppDelegate.h"

//抽屉效果
#import "MMDrawerController.h"

//中心视图
#import "centerViewController.h"

//左视图
#import "leftViewController.h"

//右视图
#import "rightViewController.h"

//导航栏,此处是需要注意的地方,因为,如果只设置一个-控制器的,会出现导航栏不随着controller移动
#import "NaviViewController.h"

//这是reveal图像监控的同文件,专门的配置随后文章附上
#import <dlfcn.h>
@interface AppDelegate ()

//将抽屉效果升级为属性,全局持有
@property (nonatomic,strong) MMDrawerController *drawer;
@end

@implementation AppDelegate

//图像显示
- (void)loadReveal
{
    if (NSClassFromString(@"IBARevealLoader") == nil)
    {
        NSString *revealLibName = @"libReveal";
        NSString *revealLibExtension = @"dylib";
        NSString *error;
        NSString *dyLibPath = [[NSBundle mainBundle] pathForResource:revealLibName ofType:revealLibExtension];
        
        if (dyLibPath != nil)
        {
            NSLog(@"Loading dynamic library: %@", dyLibPath);
            void *revealLib = dlopen([dyLibPath cStringUsingEncoding:NSUTF8StringEncoding], RTLD_NOW);
            
            if (revealLib == NULL)
            {
                error = [NSString stringWithUTF8String:dlerror()];
            }
        }
        else
        {
            error = @"File not found.";
        }
        
        if (error != nil)
        {
            NSString *message = [NSString stringWithFormat:@"%@.%@ failed to load with error: %@", revealLibName, revealLibExtension, error];
            [[[UIAlertView alloc] initWithTitle:@"Reveal library could not be loaded" message:message delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] show];
        }
    }
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.

UIViewController *left = [leftViewController new];
    left.view.backgroundColor = [UIColor whiteColor];
 // UIViewController *right = [rightViewController new];
    UINavigationController *leftNavi = [[UINavigationController alloc]initWithRootViewController:left];
   // UINavigationController*rightNavi = [[UINavigationController alloc]initWithRootViewController:right];
  // right.view.backgroundColor = [UIColor redColor];
    UIViewController *center = [centerViewController new];
    UINavigationController *centerNavi = [[NaviViewController alloc]initWithRootViewController:center];

//这里我只实现了左侧栏
    self.drawer = [[MMDrawerController alloc]initWithCenterViewController:centerNavi leftDrawerViewController:leftNavi rightDrawerViewController:nil];

center.view.backgroundColor = [UIColor blueColor];
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

//设置阴影效果
    [self.drawer setShowsShadow:NO];

//设置左侧栏打开时的宽度
    [self.drawer setMaximumLeftDrawerWidth:100];

//开启手势开启左侧栏,手势是框架自带的直接使用,可以自定义.,参照原来框架的readme实现
    [self.drawer setOpenDrawerGestureModeMask:MMOpenDrawerGestureModeAll];

//开启关闭手势
    [self.drawer setCloseDrawerGestureModeMask:MMCloseDrawerGestureModeAll];

UIColor * tintColor = [UIColor colorWithRed:29.0/255.0
                                          green:173.0/255.0
                                           blue:234.0/255.0
                                          alpha:1.0];
    [self.window setTintColor:tintColor];
    [self.window setRootViewController:self.drawer];

//调用图像监控
    [self loadReveal];
    return YES;
}

下面看一下一个导航的情况,好吧几乎看不出来了,

demo地址:https://github.com/lizhaojie001/Drawer.git

---恢复内容结束---

最新文章

  1. NOIP2003神经网络[BFS]
  2. 用 ROS 做内网DNS服务器
  3. POJ 2464 Brownie Points II --树状数组
  4. JAVA中的NIO(一)
  5. C++ Windows 上简单的非阻塞Select模型
  6. 10 Code Coverage Tools for C &amp; C++
  7. 2012 East Central Regional Contest 解题报告
  8. linux下添加PATH环境变量
  9. Spring 数据源配置二:多数据源
  10. Java基础知识强化68:基本类型包装类之Character概述和Character常见方法
  11. 【剑指offer】设置在最小数目的阵列
  12. delphi 容错提示语句汇总
  13. pageRank算法 python实现
  14. SQL Server 2008 开启数据库的远程连接
  15. 杨学明老师推出全新课程--《敏捷开发&amp;IPD和敏捷开发结合的实践》
  16. 网站建设部署与发布--笔记3-部署Nginx
  17. Web框架之Bootstrap
  18. git 配置提交过滤文件
  19. hdu 5652 India and China Origins(二分+bfs || 并查集)BestCoder Round #77 (div.2)
  20. Jenkins 对项目持续集成的配置之二 API接口自动化 Ant+Jmeter

热门文章

  1. 可解压带中文名称文件的zip包
  2. SVN—怎样安装SVNserver端软件
  3. 华为OJ机试训练(一)
  4. android httpClient 支持HTTPS的访问方式
  5. CentOS启动报错:Centos kernel panic-not syncing:VFS:Unable to mount root fs on unknown block
  6. SVN报错:can&#39;t open file db/txn-current-lock:permission denied 解决方法
  7. linux查看端口占用
  8. JavaWeb核心编程之(三.3)Servlet Init 配置
  9. mysql 存储过程中的declare 和 set @的两种变量的区别
  10. Firefox中打开DOM Inspector