颜色选择器

自iOS13之后,苹果加入大量的UI类。以前我就抱怨过苹果的UI控件少,API死板的问题。

iOS出现了两个UI类是关于颜色选择的。颜色选择的应用场景其实挺多的。如果自己去写也是可以的,但现在有现成的,功能设计又非常好,为什么不用呢?

UIColorWell

UIColorWell是一个继承UIControl的视图,它不能调整大小和UISwitch类似,大小大约是44*44。点击可弹出一个选择颜色的弹窗

属性

///弹窗的标题栏
@property (nullable, nonatomic, copy) NSString *title;

///是否支持调整透明度
@property (nonatomic) BOOL supportsAlpha;

///选中的颜色,因为是继承UIControl所以可以添加UIControlEventValueChanged类型的Event事件去监听颜色改变,同时也支持KVO
@property (nullable, nonatomic, strong) UIColor *selectedColor;

UIColorPickerViewController

UIColorPickerViewController是一个继承UIViewController的视图控制器,相比于UIColorWell,它支持协议委托去监听颜色的改变和完成两个状态,iOS15时还会监听颜色变化的持续状态

协议

UIColorPickerViewControllerDelegate

///监听颜色变化

- (void)colorPickerViewController:(UIColorPickerViewController *)viewController
                   didSelectColor:(UIColor *)color
                     continuously:(BOOL)continuously API_AVAILABLE(ios(15.0));

///监听动作完成

- (void)colorPickerViewControllerDidFinish:(UIColorPickerViewController *)viewController;
属性
@property (nullable, weak, nonatomic) id delegate;

///和UIColorWell类似,支持KVO
@property (strong, nonatomic) UIColor *selectedColor;

///是否支持颜色透明化
@property (nonatomic) BOOL supportsAlpha;

你可能感兴趣的:(颜色选择器)