From 47458830394b09674a293f11b929f6204a6bfbe2 Mon Sep 17 00:00:00 2001 From: Boris-Em Date: Sat, 19 Apr 2014 22:10:54 -0700 Subject: [PATCH] Support of graphView in UIScrollView Thank you to @nmattisson for this addition to the graph. See issue #12. --- Classes/BEMSimpleLineGraphView.m | 33 ++++++++++++++---- .../UserInterfaceState.xcuserstate | Bin 32759 -> 32783 bytes 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/Classes/BEMSimpleLineGraphView.m b/Classes/BEMSimpleLineGraphView.m index 43af2c0..fac7eb7 100644 --- a/Classes/BEMSimpleLineGraphView.m +++ b/Classes/BEMSimpleLineGraphView.m @@ -41,6 +41,12 @@ @interface BEMSimpleLineGraphView () { /// The animation delegate for lines and dots @property (strong, nonatomic) BEMAnimations *animationDelegate; +/// View for picking up pan gesture +@property (strong, nonatomic, readwrite) UIView *panView; + +/// The gesture recognizer picking up the pan in the graph view +@property (strong, nonatomic) UIPanGestureRecognizer *panGesture; + /// Find which dot is currently the closest to the vertical line - (BEMCircle *)closestDotFromVerticalLine:(UIView *)verticalLine; @@ -144,14 +150,14 @@ - (void)layoutSubviews { self.verticalLine.alpha = 0; [self addSubview:self.verticalLine]; - UIView *panView = [[UIView alloc] initWithFrame:CGRectMake(10, 10, self.viewForBaselineLayout.frame.size.width, self.viewForBaselineLayout.frame.size.height)]; - panView.backgroundColor = [UIColor clearColor]; - [self.viewForBaselineLayout addSubview:panView]; + self.panView = [[UIView alloc] initWithFrame:CGRectMake(10, 10, self.viewForBaselineLayout.frame.size.width, self.viewForBaselineLayout.frame.size.height)]; + self.panView.backgroundColor = [UIColor clearColor]; + [self.viewForBaselineLayout addSubview:self.panView]; - UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)]; - panGesture.delegate = self; - [panGesture setMaximumNumberOfTouches:1]; - [panView addGestureRecognizer:panGesture]; + self.panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)]; + self.panGesture.delegate = self; + [self.panGesture setMaximumNumberOfTouches:1]; + [self.panView addGestureRecognizer:self.panGesture]; } // Let the delegate know that the graph finished layout updates @@ -496,6 +502,19 @@ - (NSArray *)graphValuesForDataPoints { #pragma mark - Touch Gestures +- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer { + if ([gestureRecognizer isEqual:self.panGesture]) { + if (gestureRecognizer.numberOfTouches > 0) { + CGPoint translation = [self.panGesture velocityInView:self.panView]; + return fabs(translation.y) < fabs(translation.x); + } else { + NSLog(@"yo"); + return NO; + } + } + return YES; +} + - (void)handlePan:(UIPanGestureRecognizer *)recognizer { CGPoint translation = [recognizer locationInView:self.viewForBaselineLayout]; diff --git a/Sample Project/SimpleLineChart.xcodeproj/project.xcworkspace/xcuserdata/bobo.xcuserdatad/UserInterfaceState.xcuserstate b/Sample Project/SimpleLineChart.xcodeproj/project.xcworkspace/xcuserdata/bobo.xcuserdatad/UserInterfaceState.xcuserstate index 23052f51182a6bc0f600b7a236203b8fe7e233f2..9b957b1f88f99f17d23ca982b0cf17d715af8278 100644 GIT binary patch literal 32783 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 literal 32759 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