自iOS13之后,蘋果加入大量的UI類。以前我就抱怨過蘋果的UI控件少,API死板的問題。
iOS出現(xiàn)了兩個UI類是關于顏色選擇的。顏色選擇的應用場景其實挺多的。如果自己去寫也是可以的,但現(xiàn)在有現(xiàn)成的,功能設計又非常好,為什么不用呢?
UIColorWell
UIColorWell是一個繼承UIControl的視圖,它不能調整大小和UISwitch類似,大小大約是44*44。點擊可彈出一個選擇顏色的彈窗
屬性
///彈窗的標題欄
@property (nullable, nonatomic, copy) NSString *title;
///是否支持調整透明度
@property (nonatomic) BOOL supportsAlpha;
///選中的顏色,因為是繼承UIControl所以可以添加UIControlEventValueChanged類型的Event事件去監(jiān)聽顏色改變,同時也支持KVO
@property (nullable, nonatomic, strong) UIColor *selectedColor;
UIColorPickerViewController
UIColorPickerViewController是一個繼承UIViewController的視圖控制器,相比于UIColorWell,它支持協(xié)議委托去監(jiān)聽顏色的改變和完成兩個狀態(tài),iOS15時還會監(jiān)聽顏色變化的持續(xù)狀態(tài)
協(xié)議
UIColorPickerViewControllerDelegate
///監(jiān)聽顏色變化
- (void)colorPickerViewController:(UIColorPickerViewController *)viewController
didSelectColor:(UIColor *)color
continuously:(BOOL)continuously API_AVAILABLE(ios(15.0));
///監(jiān)聽動作完成
- (void)colorPickerViewControllerDidFinish:(UIColorPickerViewController *)viewController;
屬性
@property (nullable, weak, nonatomic) id<UIColorPickerViewControllerDelegate> delegate;
///和UIColorWell類似,支持KVO
@property (strong, nonatomic) UIColor *selectedColor;
///是否支持顏色透明化
@property (nonatomic) BOOL supportsAlpha;