- Allowing the slide offset to be set on portrait and landscape mode
This commit is contained in:
parent
e5790197a3
commit
1b5b643ef3
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue