From 2ae2a2ba13e3bd24e7828c625f1001c1e147f307 Mon Sep 17 00:00:00 2001 From: Zachary Davison Date: Fri, 15 Mar 2013 12:36:57 +0000 Subject: [PATCH] Added a continuous block callback to sliding --- ECSlidingViewController/SecondTopViewController.m | 4 ++++ .../ECSlidingViewController/ECSlidingViewController.h | 7 +++++++ .../ECSlidingViewController/ECSlidingViewController.m | 3 +++ 3 files changed, 14 insertions(+) diff --git a/ECSlidingViewController/SecondTopViewController.m b/ECSlidingViewController/SecondTopViewController.m index cac262a..37fbea9 100644 --- a/ECSlidingViewController/SecondTopViewController.m +++ b/ECSlidingViewController/SecondTopViewController.m @@ -20,6 +20,10 @@ self.slidingViewController.underRightViewController = nil; [self.view addGestureRecognizer:self.slidingViewController.panGesture]; + + self.slidingViewController.continuousBlock = ^(float x){ + self.view.backgroundColor = [UIColor colorWithRed:x/self.view.bounds.size.width green:50 blue:70 alpha:1]; + }; } - (IBAction)revealMenu:(id)sender diff --git a/ECSlidingViewController/Vendor/ECSlidingViewController/ECSlidingViewController.h b/ECSlidingViewController/Vendor/ECSlidingViewController/ECSlidingViewController.h index 59a6c5b..c169800 100644 --- a/ECSlidingViewController/Vendor/ECSlidingViewController/ECSlidingViewController.h +++ b/ECSlidingViewController/Vendor/ECSlidingViewController/ECSlidingViewController.h @@ -159,6 +159,13 @@ typedef enum { */ @property (nonatomic, assign) ECResetStrategy resetStrategy; +/** Can be set to provide a continuous callback as the top view slides. + + Useful for animations synchronized to the sliding. + + */ +@property (nonatomic,copy) void (^continuousBlock)(float xPos); + /** Returns a horizontal panning gesture for moving the top view. This is typically added to the top view or a top view's navigation bar. diff --git a/ECSlidingViewController/Vendor/ECSlidingViewController/ECSlidingViewController.m b/ECSlidingViewController/Vendor/ECSlidingViewController/ECSlidingViewController.m index 922a2ab..25bbc0e 100644 --- a/ECSlidingViewController/Vendor/ECSlidingViewController/ECSlidingViewController.m +++ b/ECSlidingViewController/Vendor/ECSlidingViewController/ECSlidingViewController.m @@ -248,6 +248,9 @@ NSString *const ECSlidingViewTopDidReset = @"ECSlidingViewTopDidRese { CGPoint currentTouchPoint = [recognizer locationInView:self.view]; CGFloat currentTouchPositionX = currentTouchPoint.x; + + if(self.continuousBlock) + self.continuousBlock(currentTouchPositionX); if (recognizer.state == UIGestureRecognizerStateBegan) { self.initialTouchPositionX = currentTouchPositionX;