zoukankan      html  css  js  c++  java
  • 关于ECSlidingViewController的使用

    ECSlidingViewController 是个很好用的第三方库, 也称为 "Side Menu". github上也做了很多介绍(ECSlidingViewController

    首先我们看下使用这个第三方库的效果:点击左侧菜单则会滑动到如右图所示

       

    利用cocoapods管理工具把这个第三方库加入到你的项目中来(类库的版本号根据你的项目需求来写吧),下面我是以1.3的版本号来说说它的使用方法吧

    1.创建好导航栏上的左侧菜单按钮(这里就不细讲了,相信大家都会)

    接下来我们在appdelegate 中 didFinishLaunchingWithOptions 方法中写如下代码

        UpViewController *UpView= [[UpViewController alloc] init];//app启动时最先呈现的界面

        UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:UpView];创建导航控制器并把upview做为它的根视图控制器

        ECSlidingViewController *EC = [[ECSlidingViewController alloc] init];//初始化ECSlidingViewController的实例

        [EC setTopViewController:nav]; //把导航视图控制器设为EC的顶部视图控制器

        [EC setAnchorRightPeekAmount:100];//设置右滑的宽度

        [self.window setRootViewController:EC];//最终设置EC为根视图控制器

     

    2 我们可以在UpViewController中的ViewWillAppear方法中写上如下代码:

        if (![self.slidingViewController.underLeftViewController isKindOfClass:[DownViewController class]]) {

            self.slidingViewController.underLeftViewController = [[DownViewController alloc] init];

            //创建底部控制器

        }

        [self.navigationController.view addGestureRecognizer:self.slidingViewController.panGesture];

        //给upviewcontroller加了一个左滑手势

    3.点击菜单按钮时调用的方法

       [self.slidingViewController anchorTopViewTo:ECRight];

     

    上述只是做了一个简单的滑动效果介绍

    但实际项目中如果我们这个DownViewController中有个tableview 其里面的每个cell都会跳转到不同的界面这时我们需要做以下的工作了:

     

    在tableview的didSelectRowAtIndexPath方法中 

    首先 定义一个空的导航视图控制器  如下

    UINavigationController *viewController = nil;

    然后 就是你需要实例化跳转的视图控制器,并且一定要把你实例化的controller做为上述导航视图控制器的根视图控制器

    viewController = [[UINavigationController alloc] initWithRootViewController:xxController];

    最后 在方法末尾加上以下代码

    if (viewController) {

                [self.slidingViewController anchorTopViewOffScreenTo:ECHILD animations:nil onComplete:^{

                    CGRect frame = self.slidingViewController.topViewController.view.frame;

                    self.slidingViewController.topViewController = viewController;

                    self.slidingViewController.topViewController.view.frame = frame;

                    [self.slidingViewController resetTopView];

                }];

        }

     

    因为博主也是初学 有些地方讲的不是很好  希望指正。同时但愿可以帮助你们在实际开发中速速解决类似这块的问题

     

  • 相关阅读:
    表单提交与后台PHP如何接口?
    json数组转普通数组 普通数组转json数组
    使用Memcache缓存mysql数据库操作的原理和缓存过程浅析
    int(3)和int(10)的区别
    CI 3.0.6 控制器打印base_url 地址不为 localhost的解决方法
    CI3.0控制器下面建文件夹 访问一直404 的解决方法
    http响应需要记住的状态码
    laravel 表单验证 正则匹配
    laravel 加中间件的方法 防止直接打开后台
    Laravel 设置时区
  • 原文地址:https://www.cnblogs.com/billy-chou/p/3914858.html
Copyright © 2011-2022 走看看