iOS抽屉效果

源代码下载

抽屉效果第三方类库下载

所需第三方类库下载

側拉栏抽屉效果图

        


须要导入的头文件:

#import "MMDrawerController.h"
#import "MMExampleDrawerVisualStateManager.h"
代码实现:

首先须要创建三个试图控制器

//主视图
    FirstViewController *firstVC = [[FirstViewController alloc] init];
    //左边视图
    SecondViewController *secondVC = [[SecondViewController alloc] init];
    //右边视图
    ThirdViewController *thirdVC = [[ThirdViewController alloc] init];
    
    CustomizedNavigationController *navigationVC = [[CustomizedNavigationController alloc] initWithRootViewController:firstVC];
    
    CustomizedNavigationController *leftNavigationVC = [[CustomizedNavigationController alloc] initWithRootViewController:secondVC];

    CustomizedNavigationController *rightNavigationVC = [[CustomizedNavigationController alloc] initWithRootViewController:thirdVC];

    //抽屉管理 第三方
    //该第三方既能够仅仅实现打开左側栏也能够实现打开右側栏,还能够同一时候都实现
    MMDrawerController *rooVC = [[MMDrawerController alloc] initWithCenterViewController:navigationVC leftDrawerViewController:leftNavigationVC rightDrawerViewController:rightNavigationVC];
    
    //仅仅实现打开左側栏
    //MMDrawerController *rooVCLeft = [[MMDrawerController alloc] initWithCenterViewController:navigationVC leftDrawerViewController:firstVC];
    //仅仅实现打开右側栏
    //MMDrawerController *rooVCRight = [[MMDrawerController alloc] initWithCenterViewController:navigationVC rightDrawerViewController:thirdVC];
    
    //指定window的根视图
    self.window.rootViewController = rooVC;
    //測了门的宽度
    [rooVC setMaximumLeftDrawerWidth:270];
    //设置側拉门开与关的动画
    [rooVC setOpenDrawerGestureModeMask:MMOpenDrawerGestureModeAll];
    [rooVC setCloseDrawerGestureModeMask:MMCloseDrawerGestureModeAll];
    //側开内容展示效果
    //设置向左滑动打开右側栏
    [[MMExampleDrawerVisualStateManager sharedManager] setRightDrawerAnimationType:MMDrawerAnimationTypeNone];
    //设置向右滑动打开左側栏
    [[MMExampleDrawerVisualStateManager sharedManager] setLeftDrawerAnimationType:MMDrawerAnimationTypeNone];
    
    [rooVC setDrawerVisualStateBlock:^(MMDrawerController *drawerController, MMDrawerSide drawerSide, CGFloat percentVisible) {
        MMDrawerControllerDrawerVisualStateBlock block;
        block = [[MMExampleDrawerVisualStateManager sharedManager]
                 drawerVisualStateBlockForDrawerSide:drawerSide];
        if(block){
            block(drawerController, drawerSide, percentVisible);
        }

    }];




原文地址:https://www.cnblogs.com/blfshiye/p/5391665.html