@@ -461,6 +461,8 @@ -(void)setCenterViewController:(UIViewController *)newCenterViewController withF
461461
462462 CGRect newCenterRect = self.centerContainerView .frame ;
463463
464+ [self setAnimatingDrawer: animated];
465+
464466 UIViewController * oldCenterViewController = self.centerViewController ;
465467 [oldCenterViewController beginAppearanceTransition: NO animated: animated];
466468 newCenterRect.origin .x = targetClosePoint;
@@ -498,7 +500,7 @@ -(void)setCenterViewController:(UIViewController *)newCenterViewController withF
498500 [sideDrawerViewController.view setFrame: sideDrawerViewController.mm_visibleDrawerFrame];
499501
500502 [self setOpenSide: MMDrawerSideNone];
501-
503+ [ self setAnimatingDrawer: NO ];
502504 if (completion){
503505 completion (finished);
504506 }
@@ -914,7 +916,8 @@ -(UIColor*)statusBarViewBackgroundColor{
914916#pragma mark - Gesture Handlers
915917
916918-(void )tapGestureCallback : (UITapGestureRecognizer *)tapGesture {
917- if (self.openSide != MMDrawerSideNone){
919+ if (self.openSide != MMDrawerSideNone &&
920+ self.isAnimatingDrawer == NO ){
918921 [self closeDrawerAnimated: YES completion: ^(BOOL finished) {
919922 if (self.gestureCompletion ){
920923 self.gestureCompletion (self, tapGesture);
@@ -925,8 +928,15 @@ -(void)tapGestureCallback:(UITapGestureRecognizer *)tapGesture{
925928
926929-(void )panGestureCallback : (UIPanGestureRecognizer *)panGesture {
927930 switch (panGesture.state ) {
928- case UIGestureRecognizerStateBegan:
929- self.startingPanRect = self.centerContainerView .frame ;
931+ case UIGestureRecognizerStateBegan:{
932+ if (self.animatingDrawer ){
933+ [panGesture setEnabled: NO ];
934+ break ;
935+ }
936+ else {
937+ self.startingPanRect = self.centerContainerView .frame ;
938+ }
939+ }
930940 case UIGestureRecognizerStateChanged:{
931941 CGRect newFrame = self.startingPanRect ;
932942 CGPoint translatedPoint = [panGesture translationInView: self .centerContainerView];
@@ -966,7 +976,6 @@ -(void)panGestureCallback:(UIPanGestureRecognizer *)panGesture{
966976 [self .centerContainerView setCenter: CGPointMake (CGRectGetMidX (newFrame), CGRectGetMidY (newFrame))];
967977 break ;
968978 }
969- case UIGestureRecognizerStateCancelled:
970979 case UIGestureRecognizerStateEnded:{
971980 self.startingPanRect = CGRectNull;
972981 CGPoint velocity = [panGesture velocityInView: self .childControllerContainerView];
@@ -977,6 +986,10 @@ -(void)panGestureCallback:(UIPanGestureRecognizer *)panGesture{
977986 }];
978987 break ;
979988 }
989+ case UIGestureRecognizerStateCancelled:{
990+ [panGesture setEnabled: YES ];
991+ break ;
992+ }
980993 default :
981994 break ;
982995 }
0 commit comments