- 4
- 0
- 约4.98千字
- 约 6页
- 2016-08-19 发布于河南
- 举报
【无限互联】IOS开发之自定义圆环式Slider
前言
这里实现的是一个圆环形式的Slider滑动条效果。封装了EFCircularSlider类,利用该类可实现的效果有:基本的圆环滑动效果、双重圈滑动点的圆环滑动条效果,以及当下流行的滑动选择时间效果。
EFCircularSlider框架简介
由于滑块是一个标准的UIControl,所以EFCircularSlider是一个集成UIControl的类。
该类绘制了两个空心圆,一个作为初始滑动条,一个用来填充滑动条,手柄拖动时,根据三角函数计算出当前手柄点所在的地方,绘制弧线,覆盖在原初始滑动条之上。滑动手柄的样式可选择,还可根据需要添加文字标签,优美的改变了UISlider的外观。
滑块的实现通过UIControl的以下协议方法:
//开始跟踪触摸
-(BOOL) beginTrackingWithTouch:(UITouch?*)touch withEvent:(UIEvent?*)event;
//继续跟踪触摸
-(BOOL) continueTrackingWithTouch:(UITouch?*)touch withEvent:(UIEvent?*)event;
//结束跟踪触摸
-(void)endTrackingWithTouch:(UITouch?*)touch withEvent:(UIEvent?*)event;
[objc]?view plaincopy
#pragma?mark?-?UIControl?functions??
//开始跟踪触摸??
-(BOOL)?beginTrackingWithTouch:(UITouch?*)touch?withEvent:(UIEvent?*)event?{??
????[super?beginTrackingWithTouch:touch?withEvent:event];??
??????
????return?YES;??
}??
??
//继续跟踪触摸??
-(BOOL)?continueTrackingWithTouch:(UITouch?*)touch?withEvent:(UIEvent?*)event?{??
????[super?continueTrackingWithTouch:touch?withEvent:event];??
??????
????CGPoint?lastPoint?=?[touch?locationInView:self];??
????[self?moveHandle:lastPoint];??
????[self?sendActionsForControlEvents:UIControlEventValueChanged];??
??????
????return?YES;??
}??
??
//结束跟踪触摸??
-(void)endTrackingWithTouch:(UITouch?*)touch?withEvent:(UIEvent?*)event?{??
????[super?endTrackingWithTouch:touch?withEvent:event];??
??????
????if(_snapToLabels??labelsEvenSpacing?!=?nil)?{??
????????CGPoint?bestGuessPoint;??
????????float?minDist?=?360;????//距离??
????????for?(int?i=0;?i[labelsEvenSpacing?count];?i++)?{??
????????????//在圆上得百分比??
????????????CGFloat?percentageAlongCircle?=?i/(float)[labelsEvenSpacing?count];??
????????????//度数??
????????????CGFloat?degreesForLabel?=?percentageAlongCircle?*?360;??
????????????if(abs(fixedAngle?-?degreesForLabel)??minDist)?{??
????????????????minDist?=?abs(fixedAngle?-?degreesForLabel);??
????????????????bestGuessPoint?=?[self?pointFromAngle:degreesForLabel?+?90?+?180];??
????????????}??
????????}??
????????CGPoint?centerPoint?=?CGPointMake(self.frame.size
您可能关注的文档
最近下载
- 福彩3D历史数据EXCEL自动更新.pptx VIP
- CQVL系列电动推杆.pdf VIP
- 线控器 使用安装说明书 适用型号:KJR-90WBK.pdf VIP
- 基于PLC的自动化仓储控制系统的设计.doc VIP
- 电动推杆市场分析报告.docx
- 深度解析(2026)《QCT 79.1-2008道路车辆 牵引车和挂车之间气制动连接用螺旋管总成 第1部分:尺寸》.pptx VIP
- 中小学生端午节假期安全教育主题班会PPT课件.pptx VIP
- 机器人等级考试三四级资料-第01课:初识Mixly和Fduino UNO.pptx VIP
- FULING富凌H200空压机中文说明书说明书用户手册.pdf
- Praat语音软件操作手册.docx VIP
原创力文档

文档评论(0)