【无限互联】IOS开发之自定义圆环式Slider.docVIP

  • 4
  • 0
  • 约4.98千字
  • 约 6页
  • 2016-08-19 发布于河南
  • 举报

【无限互联】IOS开发之自定义圆环式Slider.doc

【无限互联】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

文档评论(0)

1亿VIP精品文档

相关文档