From 7efdbde4b8ddf3be15834facbfa2abecb48c2cdd Mon Sep 17 00:00:00 2001 From: arquebuse Date: Wed, 4 Mar 2015 12:17:05 -0800 Subject: [PATCH] Fixed #7 - TGPDiscreteSlider sends UIControlEventValueChanged too often --- TGPControls/TGPDiscreteSlider7.m | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/TGPControls/TGPDiscreteSlider7.m b/TGPControls/TGPDiscreteSlider7.m index ce9ec35..3151963 100644 --- a/TGPControls/TGPDiscreteSlider7.m +++ b/TGPControls/TGPDiscreteSlider7.m @@ -457,8 +457,11 @@ static CGSize iosThumbShadowOffset = (CGSize){0, 3}; - (void)moveThumbToTick:(unsigned int)tick { const unsigned int nonZeroIncrement = ((0 == self.incrementValue) ? 1 : self.incrementValue); - _intValue = self.minimumValue + (tick * nonZeroIncrement); - [self sendActionsForControlEvents]; + int intValue = self.minimumValue + (tick * nonZeroIncrement); + if( intValue != _intValue) { + _intValue = intValue; + [self sendActionsForControlEvents]; + } [self layoutThumb]; [self setNeedsDisplay]; @@ -473,8 +476,11 @@ static CGSize iosThumbShadowOffset = (CGSize){0, 3}; const unsigned int tick = [self pickTickFromSliderPosition:self.thumbAbscisse]; const unsigned int nonZeroIncrement = ((0 == self.incrementValue) ? 1 : self.incrementValue); - _intValue = self.minimumValue + (tick * nonZeroIncrement); - [self sendActionsForControlEvents]; + int intValue = self.minimumValue + (tick * nonZeroIncrement); + if( intValue != _intValue) { + _intValue = intValue; + [self sendActionsForControlEvents]; + } [self setNeedsDisplay]; }