2014-04-30 79 views

回答

3

快速的解決方法,

  1. 轉到AMSlideMenuMainViewController.m
  2. 替換下面的文件的方法,
- (void)openRightMenu 
{ 
    CGRect frame = self.rightMenu.view.frame; 
    frame.origin.x = [UIScreen mainScreen].bounds.size.width - [self rightMenuWidth]; 
    frame.origin.y = 0; 
    frame.size = [UIScreen mainScreen].bounds.size; 
    frame.size.width = [self rightMenuWidth]; 
    self.rightMenu.view.frame = frame; 
    [self openRightMenuAnimated:YES]; 
} 
- (void)openLeftMenu 
    { 
     CGRect frame = self.leftMenu.view.frame; 
     frame.origin.x = 0; 
     frame.origin.y = 0; 
     frame.size = [UIScreen mainScreen].bounds.size; 
     self.leftMenu.view.frame = frame; 
     [self openLeftMenuAnimated:YES]; 
    } 

而這一點,

- (void)configure3DTransformForMenu:(AMSlideMenu)menu panningView:(UIView *)panningView 
{ 
    float cx = 0; 
    float cy = 0; 
    float cz = 0; 
    float opacity = 0; 

    /********************************************* DEEPNESS EFFECT *******************************************************/ 
    if (menu == AMSlideMenuLeft && panningView.frame.origin.x != 0 && [self deepnessForLeftMenu]) 
    { 
     //Workaround for in-call status bar 
     CGRect frame = self.leftMenu.view.frame; 
     frame.origin.x = 0; 
     frame.origin.y = 0; 
     frame.size = [UIScreen mainScreen].bounds.size; 
     self.leftMenu.view.frame = frame; 
     //end workaround for in-call status bar 

     cx = kMenuTransformScale.m11 + (panningView.frame.origin.x/[self leftMenuWidth]) * (1.0 - kMenuTransformScale.m11); 
     cy = kMenuTransformScale.m22 + (panningView.frame.origin.x/[self leftMenuWidth]) * (1.0 - kMenuTransformScale.m22); 
     cz = kMenuTransformScale.m33 + (panningView.frame.origin.x/[self leftMenuWidth]) * (1.0 - kMenuTransformScale.m33); 

     opacity = kMenuLayerInitialOpacity + (panningView.frame.origin.x/[self leftMenuWidth]) * (1.0 - kMenuLayerInitialOpacity); 

     self.leftMenu.view.layer.transform = CATransform3DMakeScale(cx, cy, cz); 
     self.leftMenu.view.layer.opacity = opacity; 
    } 
    else if (menu == AMSlideMenuRight && panningView.frame.origin.x != 0 && [self deepnessForRightMenu]) 
    { 
     //Workaround for in-call status bar 
     CGRect frame = self.rightMenu.view.frame; 
     frame.origin.x = [UIScreen mainScreen].bounds.size.width - [self rightMenuWidth]; 
     frame.origin.y = 0; 
     frame.size = [UIScreen mainScreen].bounds.size; 
     frame.size.width = [self rightMenuWidth]; 
     self.rightMenu.view.frame = frame; 
     //end workaround for in-call status bar 

     cx = kMenuTransformScale.m11 + (-panningView.frame.origin.x/[self rightMenuWidth]) * (1.0 - kMenuTransformScale.m11); 
     cy = kMenuTransformScale.m22 + (-panningView.frame.origin.x/[self rightMenuWidth]) * (1.0 - kMenuTransformScale.m22); 
     cz = kMenuTransformScale.m33 + (-panningView.frame.origin.x/[self rightMenuWidth]) * (1.0 - kMenuTransformScale.m33); 

     opacity = kMenuLayerInitialOpacity + (-panningView.frame.origin.x/[self rightMenuWidth]) * (1.0 - kMenuLayerInitialOpacity); 

     self.rightMenu.view.layer.transform = CATransform3DMakeScale(cx, cy, cz); 
     self.rightMenu.view.layer.opacity = opacity; 
    } 
    /********************************************* DEEPNESS EFFECT *******************************************************/ 

    /********************************************* STATUS BAR FIX *******************************************************/ 
    if (menu == AMSlideMenuLeft && panningView.frame.origin.x != 0) 
    { 
     if (self.statusBarView) 
     { 
      self.statusBarView.layer.opacity = 1 - panningView.frame.origin.x/[self leftMenuWidth]; 
     } 
    } 
    else if (menu == AMSlideMenuRight && panningView.frame.origin.x != 0) 
    { 
     if (self.statusBarView) 
     { 
      self.statusBarView.layer.opacity = 1 - abs(panningView.frame.origin.x)/[self rightMenuWidth]; 
     } 
    } 
    /********************************************* STATUS BAR FIX *******************************************************/ 

    /********************************************* DARKNESS EFFECT *******************************************************/ 
    if (menu == AMSlideMenuLeft) 
    { 
     CGFloat alpha = [self maxDarknessWhileLeftMenu] * (panningView.frame.origin.x/[self leftMenuWidth]); 

     self.darknessView.alpha = alpha; 
    } 
    else if(menu == AMSlideMenuRight) 
    { 
     CGFloat alpha = [self maxDarknessWhileRightMenu] * (abs(panningView.frame.origin.x)/[self rightMenuWidth]); 

     self.darknessView.alpha = alpha; 
    } 
    /********************************************* DARKNESS EFFECT *******************************************************/ 
}