Многозадачность 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];
}