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