diff --git a/MSColorPicker/MSColorSelectionViewController.h b/MSColorPicker/MSColorSelectionViewController.h index 0f4fe7f..a8391a5 100644 --- a/MSColorPicker/MSColorSelectionViewController.h +++ b/MSColorPicker/MSColorSelectionViewController.h @@ -25,6 +25,7 @@ // THE SOFTWARE. #import +#import "MSColorSelectionView.h" NS_ASSUME_NONNULL_BEGIN @@ -59,6 +60,11 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nonatomic, strong) UIColor *color; +/** +* The current colorView mode: RGB or HSB +*/ +@property (nonatomic, assign) MSSelectedColorView colorViewMode; + @end NS_ASSUME_NONNULL_END diff --git a/MSColorPicker/MSColorSelectionViewController.m b/MSColorPicker/MSColorSelectionViewController.m index 61f2ac7..c6e7dc9 100644 --- a/MSColorPicker/MSColorSelectionViewController.m +++ b/MSColorPicker/MSColorSelectionViewController.m @@ -31,6 +31,8 @@ @interface MSColorSelectionViewController () +@property (nonatomic, strong) UISegmentedControl *modeSelectionControl; + @end @implementation MSColorSelectionViewController @@ -46,19 +48,18 @@ - (void)viewDidLoad { [super viewDidLoad]; - UISegmentedControl *segmentControl = [[UISegmentedControl alloc] initWithItems:@[NSLocalizedString(@"RGB", ), NSLocalizedString(@"HSB", )]]; - [segmentControl addTarget:self action:@selector(segmentControlDidChangeValue:) forControlEvents:UIControlEventValueChanged]; - segmentControl.selectedSegmentIndex = 0; - self.navigationItem.titleView = segmentControl; + self.navigationItem.titleView = self.modeSelectionControl; - [self.colorSelectionView setSelectedIndex:0 animated:NO]; + [self.colorSelectionView setSelectedIndex:self.colorViewMode animated:NO]; self.colorSelectionView.delegate = self; self.edgesForExtendedLayout = UIRectEdgeNone; } - (IBAction)segmentControlDidChangeValue:(UISegmentedControl *)segmentedControl { - [self.colorSelectionView setSelectedIndex:segmentedControl.selectedSegmentIndex animated:YES]; + if (segmentedControl == self.modeSelectionControl) { + self.colorViewMode = segmentedControl.selectedSegmentIndex; + } } - (void)setColor:(UIColor *)color @@ -66,6 +67,24 @@ - (void)setColor:(UIColor *)color self.colorSelectionView.color = color; } +- (void)setColorViewMode:(MSSelectedColorView)selectedColorViewMode +{ + if (selectedColorViewMode != _colorViewMode) { + _colorViewMode = selectedColorViewMode; + [self.colorSelectionView setSelectedIndex:_colorViewMode animated:YES]; + self.modeSelectionControl.selectedSegmentIndex = _colorViewMode; + } +} + +-(UISegmentedControl *)modeSelectionControl { + if (_modeSelectionControl == nil) { + _modeSelectionControl = [[UISegmentedControl alloc] initWithItems:@[NSLocalizedString(@"RGB", ), NSLocalizedString(@"HSB", )]]; + [_modeSelectionControl addTarget:self action:@selector(segmentControlDidChangeValue:) forControlEvents:UIControlEventValueChanged]; + _modeSelectionControl.selectedSegmentIndex = self.colorViewMode; + } + return _modeSelectionControl; +} + - (UIColor *)color { return self.colorSelectionView.color;