diff --git a/Transformifier/Transformifier.m b/Transformifier/Transformifier.m index 6e2647f..e5c6fa2 100644 --- a/Transformifier/Transformifier.m +++ b/Transformifier/Transformifier.m @@ -36,6 +36,9 @@ a copy of this software and associated documentation files (the transformTypePerspective= 5 } enumTransformType; +#define kSliderDefaultValue_Scale 100.0 +#define kSliderDefaultValue_Other 0.0 + @interface Transformifier() @property (nonatomic, strong) CALayer *layer; @@ -92,11 +95,11 @@ - (void)loadView { - (void)reload { NSNumber *zeroInt = [NSNumber numberWithInt:0]; - NSMutableDictionary *rotate = [NSMutableDictionary dictionaryWithDictionary:@{@"type" : [NSNumber numberWithInt:transformTypeRotate], @"axisIndex" : zeroInt, @"value" : [NSNumber numberWithFloat: 0.0] }]; - NSMutableDictionary *translate = [NSMutableDictionary dictionaryWithDictionary:@{@"type" : [NSNumber numberWithInt:transformTypeTranslate], @"axisIndex" : zeroInt, @"value" : [NSNumber numberWithFloat: 0.0] }]; - NSMutableDictionary *scale = [NSMutableDictionary dictionaryWithDictionary:@{@"type" : [NSNumber numberWithInt:transformTypeScale], @"axisIndex" : zeroInt, @"value" : [NSNumber numberWithFloat:100.0] }]; - NSMutableDictionary *skew = [NSMutableDictionary dictionaryWithDictionary:@{@"type" : [NSNumber numberWithInt:transformTypeSkew], @"axisIndex" : zeroInt, @"value" : [NSNumber numberWithFloat: 0.0] }]; - NSMutableDictionary *perspective = [NSMutableDictionary dictionaryWithDictionary:@{@"type" : [NSNumber numberWithInt:transformTypePerspective],@"axisIndex" : zeroInt, @"value" : [NSNumber numberWithFloat: 0.0] }]; + NSMutableDictionary *rotate = [NSMutableDictionary dictionaryWithDictionary:@{@"type" : [NSNumber numberWithInt:transformTypeRotate], @"axisIndex" : zeroInt, @"value" : [NSNumber numberWithFloat: kSliderDefaultValue_Other] }]; + NSMutableDictionary *translate = [NSMutableDictionary dictionaryWithDictionary:@{@"type" : [NSNumber numberWithInt:transformTypeTranslate], @"axisIndex" : zeroInt, @"value" : [NSNumber numberWithFloat: kSliderDefaultValue_Other] }]; + NSMutableDictionary *scale = [NSMutableDictionary dictionaryWithDictionary:@{@"type" : [NSNumber numberWithInt:transformTypeScale], @"axisIndex" : zeroInt, @"value" : [NSNumber numberWithFloat:kSliderDefaultValue_Scale] }]; + NSMutableDictionary *skew = [NSMutableDictionary dictionaryWithDictionary:@{@"type" : [NSNumber numberWithInt:transformTypeSkew], @"axisIndex" : zeroInt, @"value" : [NSNumber numberWithFloat: kSliderDefaultValue_Other] }]; + NSMutableDictionary *perspective = [NSMutableDictionary dictionaryWithDictionary:@{@"type" : [NSNumber numberWithInt:transformTypePerspective],@"axisIndex" : zeroInt, @"value" : [NSNumber numberWithFloat: kSliderDefaultValue_Other] }]; self.transformsArray = [NSMutableArray arrayWithArray:@[ rotate, translate, scale ]]; self.sourceArray = [NSMutableArray arrayWithArray:@[ skew, perspective, rotate, translate, scale ]]; @@ -319,6 +322,10 @@ - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reus self.slider = [[UISlider alloc] initWithFrame:CGRectMake(10, 35, 200, 20)]; [self.contentView addSubview:slider]; + UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(resetSlider:)]; + doubleTap.numberOfTapsRequired = 2; + [slider addGestureRecognizer:doubleTap]; + [axisChooser addTarget:self action:@selector(setAxisIndex) forControlEvents:UIControlEventValueChanged]; [slider addTarget:self action:@selector(setValueLabel) forControlEvents:UIControlEventValueChanged]; } @@ -380,7 +387,7 @@ - (void)setEnabled:(BOOL)value { } - (void)setAxisIndex { - [transformData setValue:[NSNumber numberWithInt:axisChooser.selectedSegmentIndex] forKey:@"axisIndex"]; + [transformData setValue:[NSNumber numberWithInt:(int)axisChooser.selectedSegmentIndex] forKey:@"axisIndex"]; [delegate applyTransform]; } @@ -400,6 +407,17 @@ - (void)setValueLabel { [delegate applyTransform]; } +- (void)resetSlider:(UITapGestureRecognizer *)sender +{ + if (transformType == transformTypeScale) { + slider.value = kSliderDefaultValue_Scale; + } else { + slider.value = kSliderDefaultValue_Other; + } + + [self setValueLabel]; +} + @end