先让我们看看效果:

主要实现的代码:

UIImage *thumbWithLevel(float aLevel)
{float INSET_AMT = 1.5f;CGRect baseRect = CGRectMake(0, 0, 40, 100);CGRect thumbRect = CGRectMake(0, 40, 40, 20);UIGraphicsBeginImageContext(baseRect.size);CGContextRef context = UIGraphicsGetCurrentContext();[[UIColor darkGrayColor] setFill];CGContextAddRect(context, CGRectInset(thumbRect, INSET_AMT, INSET_AMT));CGContextFillPath(context);[[UIColor whiteColor] setStroke];CGContextSetLineWidth(context, 2);CGContextAddRect(context, CGRectInset(thumbRect, 2 * INSET_AMT, 2 * INSET_AMT));CGRect ellipseRect = CGRectMake(0, 0, 40, 40);[[UIColor colorWithWhite:aLevel alpha:1] setFill];CGContextAddEllipseInRect(context, ellipseRect);CGContextFillPath(context);NSString *numString = [NSString stringWithFormat:@"%0.2f",aLevel];UIColor *textColor = (aLevel > 0.5) ? [UIColor blackColor] : [UIColor whiteColor];UIFont *font = [UIFont fontWithName:@"Georgia" size:15];NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];style.lineBreakMode = NSLineBreakByCharWrapping;style.alignment = NSTextAlignmentCenter;NSDictionary *attr = @{NSFontAttributeName:font,NSParagraphStyleAttributeName:style,NSForegroundColorAttributeName:textColor};[numString drawInRect:CGRectInset(ellipseRect, 0, 6) withAttributes:attr];[[UIColor grayColor] setStroke];CGContextSetLineWidth(context, 3);CGContextAddEllipseInRect(context, CGRectInset(ellipseRect, 2, 2));CGContextStrokePath(context);UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();return  theImage;
}

在这里我们通过context的方法将图片画出了,对于性能有点要求,但是现在应该不在乎这点性能了

- (void)updateThumb
{if ((self.value < 0.98) && (ABS(self.value - previousValue) < 0.1f)) {return;}UIImage *customImg = thumbWithLevel(self.value);[self setThumbImage:customImg forState:UIControlStateHighlighted];previousValue = self.value;
}

通过滑块的值来使上面的值进行变化,更加的直观

   [self setThumbImage:simpleThumb() forState:UIControlStateNormal];[self addTarget:self action:@selector(startDrag:) forControlEvents:UIControlEventTouchDown];[self addTarget:self action:@selector(updateThumb) forControlEvents:UIControlEventValueChanged];[self addTarget:self action:@selector(endDrag:) forControlEvents:UIControlEventTouchUpOutside | UIControlEventTouchUpInside];

对于不同的状态来进行不同的操作,让滑杆的用户体验度更加的完整

ios 自定义滑杆相关推荐

  1. 一劳永逸,iOS 自定义 ActionSheet 封装流程

    原文链接:http://www.jianshu.com/p/cfb87a7db7b1 本文为 iOS 自定义视图封装<一劳永逸>系列的第四期,旨在提供封装思路,结果固然重要,但理解过程才最 ...

  2. iOS自定义View 控件自动计算size能力

    iOS自定义View 控件自动计算size能力 背景 在使用 UILabel 和 UIImage 的时候,不用指定宽高约束,控件也不会报约束缺失,还可以根据内容自己确定适合的宽高,特别适合 Xib 和 ...

  3. ios 自定义字体_如何仅用几行代码在iOS应用中创建一致的自定义字体

    ios 自定义字体 by Yuichi Fujiki 藤木雄一 In this article, you'll learn how to create a unified custom look th ...

  4. iOS自定义组与组之间的距离以及视图

    iOS自定义组与组之间的距离以及视图 //头视图高度 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(N ...

  5. iOS 自定义转场动画浅谈

    代码地址如下: http://www.demodashi.com/demo/11612.html 路漫漫其修远兮,吾将上下而求索 前记 想研究自定义转场动画很久了,时间就像海绵,挤一挤还是有的,花了差 ...

  6. php使用自定义alert,IOS_iOS自定义alertView提示框实例分享,本文实例为大家分享iOS自定义a - phpStudy...

    iOS自定义alertView提示框实例分享 本文实例为大家分享iOS自定义alertView提示框,先上图,弹框的背景色,按钮背景色,提示的消息的字体颜色都可以改变 利用单例实现丰富的自定义接口 / ...

  7. ios cell点击对勾_带图像和对勾的iOS自定义TableView

    ios cell点击对勾 In this tutorial, we'll be developing an iOS Application that contains a custom TableVi ...

  8. iOS 自定义无限循环滚动广告动画控件

    iOS  自定义无限循环广告动画控件 自定义循环滚动的广告控件,支持水平和竖直两个动画方向,页码标记是自定义的,可以随意控制大小位置和颜色等 效果图: 下载地址: https://github.com ...

  9. Hbuildx打包ios自定义基座

    Hbuildx篇 uniapp打包ios自定义基座 IOS打在线包烧钱又不好调试,要想达到与代码同步的测试效果只能安装自定义基座,为此踩了无数的坑,特别记录一下. 1.制作自定义基座 2.运行基座 这 ...

最新文章

  1. ORA-00257: archiver error. Connect internal only, until freed 错误的处理方法
  2. vue填坑指南之模板的使用
  3. jieba(结巴)常用方法
  4. Training little cats
  5. 64位ubuntu kylin 16.04下tiny4412开发环境搭建
  6. Protobuf3教程
  7. 为啥你写的代码老有大串的if/else?
  8. centos6.5安装apache php,Centos66安装apache24
  9. 又是一年秋来到,学习要趁早,Power BI Desktop8月更新又来了
  10. Google Protocol Buffer
  11. linux 集成调试工具,linux下can调试工具canutils安装过程记录
  12. 荔枝派zero编译rtl8723bs驱动并连接WiFi
  13. 雷电模拟器脚本编写_你有好的引流话术, 还需配上脚本这样的全自动引流工具, 才是高效的引流方法...
  14. xp计算机限制打开u盘,XP系统无法读取u盘的解决设置方法
  15. LLC谐振变换器学习 一
  16. 美团html页面代码,html+css+js制作美团官网
  17. 矩阵键盘_按键检测_按键次数检测
  18. 线性代数_4、行列式按行展开,异乘变零,拉普拉斯定理
  19. 论文推荐 | 综述:自动驾驶背景下的交通流模型研究
  20. 集成学习:lightGBM(二)

热门文章

  1. 双活数据中心架构分析及优缺点
  2. 《算法分析与设计》作业9----最长公共子序列LCS
  3. Tp5.0对接腾讯云语音验证码
  4. mvp的全称_库里常规赛mvp是哪一年,分别于2014-15和2015-16赛季荣膺
  5. Ubuntu18.04安装坚果云
  6. Gradle使用Junit5进行test
  7. C语言中EOF是什么意思? linux 【转载】 2020-11-19
  8. 基于DRM框架的HDMI热插拔流程分析
  9. Arduino:实现四位LED共阴极数码管显示——从认识、连接、程序到实现功能
  10. 智能管家(原型)- 语音控制设备