使用MMDrawer进行iOS 9多任务处理会产生不必要的阴影

使用MMDrawer进行iOS 9多任务处理会产生不必要的阴影,ios,ios9,mmdrawercontroller,Ios,Ios9,Mmdrawercontroller,我在使用MMDrawer时发现,当改变多任务处理的大小时,我的边栏视图被完全隐藏或根本不被隐藏 有没有办法解决这个问题?我已经找到了一个有效的解决方案 因此,我在MMDrawerController.m文件中添加了以下代码: - (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator {

我在使用MMDrawer时发现,当改变多任务处理的大小时,我的边栏视图被完全隐藏或根本不被隐藏


有没有办法解决这个问题?

我已经找到了一个有效的解决方案

因此,我在MMDrawerController.m文件中添加了以下代码:

- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator {
    [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
    // willRotateToInterfaceOrientation code goes here
    BOOL gestureInProgress = NO;

    for (UIGestureRecognizer *gesture in self.view.gestureRecognizers) {
        if (gesture.state == UIGestureRecognizerStateChanged) {
            [gesture setEnabled:NO];
            [gesture setEnabled:YES];
            gestureInProgress = YES;
        }

        if (gestureInProgress) {
            [self resetDrawerVisualStateForDrawerSide:self.openSide];
        }
    }

    [coordinator animateAlongsideTransition:^(id < UIViewControllerTransitionCoordinatorContext > context) {
                 // willAnimateRotationToInterfaceOrientation code goes here
                 [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];

                 if (self.showsShadow) {
                     CGPathRef oldShadowPath = self.centerContainerView.layer.shadowPath;

                 if (oldShadowPath) {
                     CFRetain(oldShadowPath);
                 }

                 [self updateShadowForCenterView];

                 if (oldShadowPath) {
                     [self.centerContainerView.layer addAnimation:((^{
                         CABasicAnimation *transition = [CABasicAnimation animationWithKeyPath:@"shadowPath"];
                         transition.fromValue = (__bridge id)oldShadowPath;
                         transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
                         return transition;
                 })())
                       forKey:@"transition"];
                         CFRelease(oldShadowPath);
                     }
                 }
             }
             completion:nil];
}
-(void)视图将转换大小:(CGSize)带有转换协调器的大小:(id)协调器{
[super ViewWillTransitionSize:size with TransitionCoordinator:coordinator];
//willRotateToInterfaceOrientation代码在这里
BOOL gestureInProgress=否;
for(UIGestureRecognitor*self.view.GestureRecognitors中的手势){
如果(手势.state==UIGestureRecognitizerStateChanged){
[手势设置启用:否];
[手势设置已启用:是];
gestureInProgress=是;
}
if(手势程序){
[self-resetDrawerVisualStateForDrawerSide:self.openSide];
}
}
[coordinator AnimateLongSideTransition:^(idcontext){
//WillAnimateRotationInterfaceOrientation代码在这里
[super ViewWillTransitionSize:size with TransitionCoordinator:coordinator];
if(self.showshadow){
CGPathRef oldShadowPath=self.centerContainerView.layer.shadowPath;
if(旧阴影路径){
CFRetain(旧阴影路径);
}
[自我更新AdowForceEnterView];
if(旧阴影路径){
[self.centerContainerView.layer添加动画:((^{
CABasicAnimation*transition=[CABasicAnimation animationWithKeyPath:@“阴影路径”];
transition.fromValue=(\uu桥id)oldShadowPath;
transition.timingFunction=[CamediaTimingFunctionWithName:kCAMediaTimingFunctionEaseInEaseOut];
回归过渡;
})())
福克斯:@“过渡”];
CFRelease(oldShadowPath);
}
}
}
完成:无];
}