Многозадачность iOS 9 с MMDrawer вызывает нежелательную тень

Я работал с MMDrawer и увидел, что мой боковой вид полностью затенен или вообще не затенен при изменении размера многозадачности.

Есть ли способ решить эту проблему?

1 ответ

Решение

Я искал и нашел рабочее решение здесь.

Поэтому я добавил следующий код в мой файл 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];
}
Другие вопросы по тегам