MMDrawerController第一次加载侧边栏高度问题

引言:当在CenterControl侧滑进入侧边栏  第一次加载侧边栏高度不对  因为我的侧边栏是添加导航栏的  高度会有个先升后恢复到初始的事情  只有App启动是每一次的第一次点击按钮进行侧滑才会出现这个问题  但是当侧滑加上动画时就不出现这个问题

测试: iPhoneSE2代   第一次加载侧边栏高度为623  非第一次启动603(正常)  

         iPhone11  第一次加载侧边栏高度为852  非第一次启动808(正常)  

解决方案以及侧滑代码

        HomeViewController *home = [[HomeViewController alloc]init];

        LeftMenuController *left = [[LeftMenuController alloc]init];

        UINavigationController *centerNvaVC = [[UINavigationController alloc]initWithRootViewController:home];

        UINavigationController *leftNavVC = [[UINavigationController alloc]initWithRootViewController:left];

        self.drawerController = [[MMDrawerController alloc] initWithCenterViewController:centerNvaVC leftDrawerViewController:leftNavVC];

        [self.drawerController setShowsShadow:NO];

        //4、设置打开/关闭抽屉的手势

        self.drawerController.openDrawerGestureModeMask  = MMOpenDrawerGestureModeNone;

        self.drawerController.closeDrawerGestureModeMask = MMCloseDrawerGestureModeNone;

        //5、设置左右两边抽屉显示的多少

        self.drawerController.maximumLeftDrawerWidth = KScreenW;

//我是在这里面解决问题的

        [self.drawerController bouncePreviewForDrawerSide:(MMDrawerSideLeft) completion:nil];

        [self.window setRootViewController:self.drawerController];

进入我上面写的方法  把645-660的动画代码屏蔽就好了  调用屏蔽代码上的两个方法应该也是可以的

未防止CSDN年久失修不显示图片  特地贴下代码

-(void)bouncePreviewForDrawerSide:(MMDrawerSide)drawerSide distance:(CGFloat)distance completion:(void(^)(BOOL finished))completion{
    NSParameterAssert(drawerSide!=MMDrawerSideNone);
    
    UIViewController * sideDrawerViewController = [self sideDrawerViewControllerForSide:drawerSide];

    if(sideDrawerViewController == nil ||
       self.openSide != MMDrawerSideNone){
        if(completion){
            completion(NO);
        }
        return;
    }
    else {
        [self prepareToPresentDrawer:drawerSide animated:YES];
        
        [self updateDrawerVisualStateForDrawerSide:drawerSide percentVisible:1.0];
        
//        [CATransaction begin];
//        [CATransaction
//         setCompletionBlock:^{
//             [sideDrawerViewController endAppearanceTransition];
//             [sideDrawerViewController beginAppearanceTransition:NO animated:NO];
//             [sideDrawerViewController endAppearanceTransition];
//             if(completion){
//                 completion(YES);
//             }
//         }];
//
//        CGFloat modifier = ((drawerSide == MMDrawerSideLeft)?1.0:-1.0);
//        CAKeyframeAnimation *animation = bounceKeyFrameAnimationForDistanceOnView(distance*modifier,self.centerContainerView);
//        [self.centerContainerView.layer addAnimation:animation forKey:@"bouncing"];
//
//        [CATransaction commit];
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值