Skip to content

Commit 1b5b643

Browse files
committed
- Allowing the slide offset to be set on portrait and landscape mode
1 parent e579019 commit 1b5b643

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

SlideMenu/Source/SlideNavigationController.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ typedef enum{
4747
@property (nonatomic, strong) UIViewController *leftMenu;
4848
@property (nonatomic, strong) UIBarButtonItem *leftbarButtonItem;
4949
@property (nonatomic, strong) UIBarButtonItem *rightBarButtonItem;
50+
@property (nonatomic, assign) CGFloat portraitSlideOffset;
51+
@property (nonatomic, assign) CGFloat landscapeSlideOffset;
5052

5153
+ (SlideNavigationController *)sharedInstance;
5254
- (void)switchToViewController:(UIViewController *)viewController withCompletion:(void (^)())completion;

SlideMenu/Source/SlideNavigationController.m

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,9 @@ @interface SlideNavigationController()
3535

3636
@implementation SlideNavigationController
3737

38-
#define MENU_OFFSET 60
3938
#define MENU_SLIDE_ANIMATION_DURATION .3
4039
#define MENU_QUICK_SLIDE_ANIMATION_DURATION .1
4140
#define MENU_IMAGE @"menu-button"
42-
#define DegreesToRadians(degrees) (degrees * M_PI / 180)
4341

4442
static SlideNavigationController *singletonInstance;
4543

@@ -82,6 +80,8 @@ - (id)initWithRootViewController:(UIViewController *)rootViewController
8280

8381
- (void)setup
8482
{
83+
self.landscapeSlideOffset = 60;
84+
self.portraitSlideOffset = 60;
8585
self.avoidSwitchingToSameClassViewController = YES;
8686
singletonInstance = self;
8787
self.delegate = self;
@@ -270,7 +270,8 @@ - (void)openMenu:(Menu)menu withDuration:(float)duration andCompletion:(void (^)
270270
options:UIViewAnimationOptionCurveEaseOut
271271
animations:^{
272272
CGRect rect = self.view.frame;
273-
rect.origin.x = (menu == MenuLeft) ? (rect.size.width - MENU_OFFSET) : ((rect.size.width - MENU_OFFSET )* -1);
273+
CGFloat width = (UIInterfaceOrientationIsLandscape(self.interfaceOrientation)) ? rect.size.height : rect.size.width;
274+
rect.origin.x = (menu == MenuLeft) ? (width - self.slideOffset) : ((width - self.slideOffset )* -1);
274275
[self moveHorizontallyToLocation:rect.origin.x];
275276
//self.view.frame = rect;
276277
}
@@ -360,6 +361,13 @@ - (void)navigationController:(UINavigationController *)navigationController
360361
viewController.navigationItem.rightBarButtonItem = [self barButtonItemForMenu:MenuRight];
361362
}
362363

364+
- (CGFloat)slideOffset
365+
{
366+
return (UIInterfaceOrientationIsLandscape(self.interfaceOrientation))
367+
? self.landscapeSlideOffset
368+
: self.portraitSlideOffset;
369+
}
370+
363371
#pragma mark - IBActions -
364372

365373
- (void)leftMenuSelected:(id)sender
@@ -471,7 +479,7 @@ - (NSInteger)minXForDragging
471479
{
472480
if ([self shouldDisplayMenu:MenuRight forViewController:self.topViewController])
473481
{
474-
return (self.view.frame.size.width - MENU_OFFSET) * -1;
482+
return (self.view.frame.size.width - self.slideOffset) * -1;
475483
}
476484

477485
return 0;
@@ -481,7 +489,7 @@ - (NSInteger)maxXForDragging
481489
{
482490
if ([self shouldDisplayMenu:MenuLeft forViewController:self.topViewController])
483491
{
484-
return self.view.frame.size.width - MENU_OFFSET;
492+
return self.view.frame.size.width - self.slideOffset;
485493
}
486494

487495
return 0;

0 commit comments

Comments
 (0)