From e5d69813431e01ec3cac8096652a14063ff8ac1c Mon Sep 17 00:00:00 2001 From: Mike Enriquez Date: Tue, 20 Mar 2012 14:30:53 -0400 Subject: [PATCH] Convenience methods for anchoring without callbacks - Instead of calling anchorTopView:animations:onComplete: with nil blocks, you can just call anchorTopView: --- ECSlidingViewController/FirstTopViewController.m | 4 ++-- .../SampleTableViewController.m | 2 +- ECSlidingViewController/SecondTopViewController.m | 2 +- ECSlidingViewController/ThirdTopViewController.m | 2 +- .../ECSlidingViewController.h | 14 ++++++++++++++ .../ECSlidingViewController.m | 14 ++++++++++++-- 6 files changed, 31 insertions(+), 7 deletions(-) diff --git a/ECSlidingViewController/FirstTopViewController.m b/ECSlidingViewController/FirstTopViewController.m index df41fb9..ed71d4c 100644 --- a/ECSlidingViewController/FirstTopViewController.m +++ b/ECSlidingViewController/FirstTopViewController.m @@ -46,12 +46,12 @@ - (IBAction)revealMenu:(id)sender { - [self.slidingViewController anchorTopViewTo:ECRight animations:nil onComplete:nil]; + [self.slidingViewController anchorTopViewTo:ECRight]; } - (IBAction)revealUnderRight:(id)sender { - [self.slidingViewController anchorTopViewTo:ECLeft animations:nil onComplete:nil]; + [self.slidingViewController anchorTopViewTo:ECLeft]; } @end \ No newline at end of file diff --git a/ECSlidingViewController/SampleTableViewController.m b/ECSlidingViewController/SampleTableViewController.m index da8da9c..ed3ac0f 100644 --- a/ECSlidingViewController/SampleTableViewController.m +++ b/ECSlidingViewController/SampleTableViewController.m @@ -40,7 +40,7 @@ - (IBAction)revealMenu:(id)sender { - [self.slidingViewController anchorTopViewTo:ECRight animations:nil onComplete:nil]; + [self.slidingViewController anchorTopViewTo:ECRight]; } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation diff --git a/ECSlidingViewController/SecondTopViewController.m b/ECSlidingViewController/SecondTopViewController.m index 96f33df..77aa564 100644 --- a/ECSlidingViewController/SecondTopViewController.m +++ b/ECSlidingViewController/SecondTopViewController.m @@ -26,7 +26,7 @@ - (IBAction)revealMenu:(id)sender { - [self.slidingViewController anchorTopViewTo:ECRight animations:nil onComplete:nil]; + [self.slidingViewController anchorTopViewTo:ECRight]; } @end diff --git a/ECSlidingViewController/ThirdTopViewController.m b/ECSlidingViewController/ThirdTopViewController.m index a02ad74..3548de7 100644 --- a/ECSlidingViewController/ThirdTopViewController.m +++ b/ECSlidingViewController/ThirdTopViewController.m @@ -53,7 +53,7 @@ - (IBAction)revealMenu:(id)sender { - [self.slidingViewController anchorTopViewTo:ECRight animations:nil onComplete:nil]; + [self.slidingViewController anchorTopViewTo:ECRight]; } // slidingViewController notification diff --git a/ECSlidingViewController/Vendor/ECSlidingViewController/ECSlidingViewController.h b/ECSlidingViewController/Vendor/ECSlidingViewController/ECSlidingViewController.h index c506930..b8946d6 100644 --- a/ECSlidingViewController/Vendor/ECSlidingViewController/ECSlidingViewController.h +++ b/ECSlidingViewController/Vendor/ECSlidingViewController/ECSlidingViewController.h @@ -118,6 +118,14 @@ typedef enum { */ - (UIPanGestureRecognizer *)panGesture; +/** Slides the top view in the direction of the specified side. + + A peek amount or reveal amount must be set for the given side. The top view will anchor to one of those specified values. + + @param side The side for the top view to slide towards. + */ +- (void)anchorTopViewTo:(ECSide)side; + /** Slides the top view in the direction of the specified side. A peek amount or reveal amount must be set for the given side. The top view will anchor to one of those specified values. @@ -128,6 +136,12 @@ typedef enum { */ - (void)anchorTopViewTo:(ECSide)side animations:(void(^)())animations onComplete:(void(^)())complete; +/** Slides the top view off of the screen in the direction of the specified side. + + @param side The side for the top view to slide off the screen towards. + */ +- (void)anchorTopViewOffScreenTo:(ECSide)side; + /** Slides the top view off of the screen in the direction of the specified side. @param side The side for the top view to slide off the screen towards. diff --git a/ECSlidingViewController/Vendor/ECSlidingViewController/ECSlidingViewController.m b/ECSlidingViewController/Vendor/ECSlidingViewController/ECSlidingViewController.m index 0c202bf..493158b 100644 --- a/ECSlidingViewController/Vendor/ECSlidingViewController/ECSlidingViewController.m +++ b/ECSlidingViewController/Vendor/ECSlidingViewController/ECSlidingViewController.m @@ -185,9 +185,9 @@ NSString *const ECSlidingViewTopDidReset = @"ECSlidingViewTopDidReset"; CGFloat currentVelocityX = currentVelocityPoint.x; if ([self underLeftShowing] && currentVelocityX > 100) { - [self anchorTopViewTo:ECRight animations:nil onComplete:nil]; + [self anchorTopViewTo:ECRight]; } else if ([self underRightShowing] && currentVelocityX < 100) { - [self anchorTopViewTo:ECLeft animations:nil onComplete:nil]; + [self anchorTopViewTo:ECLeft]; } else { [self resetTopView]; } @@ -199,6 +199,11 @@ NSString *const ECSlidingViewTopDidReset = @"ECSlidingViewTopDidReset"; return _panGesture; } +- (void)anchorTopViewTo:(ECSide)side +{ + [self anchorTopViewTo:side animations:nil onComplete:nil]; +} + - (void)anchorTopViewTo:(ECSide)side animations:(void (^)())animations onComplete:(void (^)())complete { CGFloat newCenter = self.topView.center.x; @@ -234,6 +239,11 @@ NSString *const ECSlidingViewTopDidReset = @"ECSlidingViewTopDidReset"; }]; } +- (void)anchorTopViewOffScreenTo:(ECSide)side +{ + [self anchorTopViewOffScreenTo:side animations:nil onComplete:nil]; +} + - (void)anchorTopViewOffScreenTo:(ECSide)side animations:(void(^)())animations onComplete:(void(^)())complete { CGFloat newCenter = self.topView.center.x;