From 66f08907ae6230d5313332ddebf2a70c2cc5cc60 Mon Sep 17 00:00:00 2001 From: David Linsin Date: Tue, 4 Jan 2011 11:14:27 +0100 Subject: [PATCH] * refactored iOS 4 code to work on 3.0 --- OBSlider/OBSlider.m | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/OBSlider/OBSlider.m b/OBSlider/OBSlider.m index 4b88288..cfce3cf 100644 --- a/OBSlider/OBSlider.m +++ b/OBSlider/OBSlider.m @@ -97,6 +97,16 @@ - (BOOL) beginTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event return beginTracking; } +- (NSUInteger) findIndexOfLowerScrubbingSpeed:(NSArray*)scrubbingSpeedPositions :(CGFloat)verticalOffset { + for (int i=0; i < [scrubbingSpeedPositions count]; i++) { + NSNumber *obj = [scrubbingSpeedPositions objectAtIndex:i]; + if (verticalOffset < [obj floatValue]) { + return i; + } + } + return NSNotFound; +} + - (BOOL) continueTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event { @@ -108,9 +118,7 @@ - (BOOL) continueTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event // Find the scrubbing speed that curresponds to the touch's vertical offset CGFloat verticalOffset = fabsf(currentLocation.y - self.beganTrackingLocation.y); - NSUInteger scrubbingSpeedChangePosIndex = [self.scrubbingSpeedChangePositions indexOfObjectPassingTest:^(id obj, NSUInteger idx, BOOL *stop) { - return (BOOL)(verticalOffset < [obj floatValue]); - }]; + NSUInteger scrubbingSpeedChangePosIndex = [self findIndexOfLowerScrubbingSpeed:self.scrubbingSpeedChangePositions :verticalOffset]; if (scrubbingSpeedChangePosIndex == NSNotFound) { scrubbingSpeedChangePosIndex = [self.scrubbingSpeeds count]; }