diff --git a/SlideMenu/Source/SlideNavigationController.h b/SlideMenu/Source/SlideNavigationController.h index ad6728a..a24a50f 100644 --- a/SlideMenu/Source/SlideNavigationController.h +++ b/SlideMenu/Source/SlideNavigationController.h @@ -47,6 +47,8 @@ typedef enum{ @property (nonatomic, strong) UIViewController *leftMenu; @property (nonatomic, strong) UIBarButtonItem *leftbarButtonItem; @property (nonatomic, strong) UIBarButtonItem *rightBarButtonItem; +@property (nonatomic, assign) CGFloat portraitSlideOffset; +@property (nonatomic, assign) CGFloat landscapeSlideOffset; + (SlideNavigationController *)sharedInstance; - (void)switchToViewController:(UIViewController *)viewController withCompletion:(void (^)())completion; diff --git a/SlideMenu/Source/SlideNavigationController.m b/SlideMenu/Source/SlideNavigationController.m index aef4fdb..e8a3dac 100644 --- a/SlideMenu/Source/SlideNavigationController.m +++ b/SlideMenu/Source/SlideNavigationController.m @@ -35,11 +35,9 @@ @implementation SlideNavigationController -#define MENU_OFFSET 60 #define MENU_SLIDE_ANIMATION_DURATION .3 #define MENU_QUICK_SLIDE_ANIMATION_DURATION .1 #define MENU_IMAGE @"menu-button" -#define DegreesToRadians(degrees) (degrees * M_PI / 180) static SlideNavigationController *singletonInstance; @@ -82,6 +80,8 @@ static SlideNavigationController *singletonInstance; - (void)setup { + self.landscapeSlideOffset = 60; + self.portraitSlideOffset = 60; self.avoidSwitchingToSameClassViewController = YES; singletonInstance = self; self.delegate = self; @@ -270,7 +270,8 @@ static SlideNavigationController *singletonInstance; options:UIViewAnimationOptionCurveEaseOut animations:^{ CGRect rect = self.view.frame; - rect.origin.x = (menu == MenuLeft) ? (rect.size.width - MENU_OFFSET) : ((rect.size.width - MENU_OFFSET )* -1); + CGFloat width = (UIInterfaceOrientationIsLandscape(self.interfaceOrientation)) ? rect.size.height : rect.size.width; + rect.origin.x = (menu == MenuLeft) ? (width - self.slideOffset) : ((width - self.slideOffset )* -1); [self moveHorizontallyToLocation:rect.origin.x]; //self.view.frame = rect; } @@ -360,6 +361,13 @@ static SlideNavigationController *singletonInstance; viewController.navigationItem.rightBarButtonItem = [self barButtonItemForMenu:MenuRight]; } +- (CGFloat)slideOffset +{ + return (UIInterfaceOrientationIsLandscape(self.interfaceOrientation)) + ? self.landscapeSlideOffset + : self.portraitSlideOffset; +} + #pragma mark - IBActions - - (void)leftMenuSelected:(id)sender @@ -471,7 +479,7 @@ static SlideNavigationController *singletonInstance; { if ([self shouldDisplayMenu:MenuRight forViewController:self.topViewController]) { - return (self.view.frame.size.width - MENU_OFFSET) * -1; + return (self.view.frame.size.width - self.slideOffset) * -1; } return 0; @@ -481,7 +489,7 @@ static SlideNavigationController *singletonInstance; { if ([self shouldDisplayMenu:MenuLeft forViewController:self.topViewController]) { - return self.view.frame.size.width - MENU_OFFSET; + return self.view.frame.size.width - self.slideOffset; } return 0;