自定义UISlider

需求

最近工作中有个对完成动作难度评价的视图,设计给出了以下设计方案:


设计方案

要求:
1、拖动选中
2、点击选中
3、拖动视图和文字跟随颜色变化

开始

① 我的想法是既能滑动又能点击,可以使用UIControl自定义视图,在以下四个方法中处理手势事件:

- (BOOL)beginTrackingWithTouch:(UITouch *)touch withEvent:(nullable UIEvent *)event;
- (BOOL)continueTrackingWithTouch:(UITouch *)touch withEvent:(nullable UIEvent *)event;
- (void)endTrackingWithTouch:(nullable UITouch *)touch withEvent:(nullable UIEvent *)event;
- (void)cancelTrackingWithEvent:(nullable UIEvent *)event;

② 渐变颜色可以使用CAGradientLayer,滑动过程中,识别颜色视图中的色值;
③ 点击处理:在 endTrackingWithTouch中,处理最终停留的位置。
④ 在代理

实现效果

最终效果

代码部分

一、使用
视图属性设置
属性内容
二、视图结构

.h文件中暴露了一些外部可修改的可选属性。


.h文件

选择完成后,通过代理方法返回下标和当前选中的颜色色值


代理方法

代码地址

下载地址

你可能感兴趣的:(自定义UISlider)