ios 滑块进度条百分比 显示进度
2015-10-08 10:53
447 查看
<span style="font-family: Arial, Helvetica, sans-serif;"> </span>
<span style="font-family: Arial, Helvetica, sans-serif;"> </span>
<span style="font-family: Arial, Helvetica, sans-serif;">//该方法监听slider的值的改变</span>
- (IBAction)progressChanged:(UISlider *)sender { CGFloat progress = sender.value; if (progress == 100) { [sender setMaximumValueImage:[UIImage imageNamed:@"finish"]]; [sender setThumbImage:nil forState:UIControlStateNormal]; }else{ UIImage *image = [self progressImage:[NSString stringWithFormat:@"%d%%",(int)progress]]; [sender setThumbImage:image forState:UIControlStateNormal]; [sender setMaximumValueImage:nil]; } } //该方法绘制要显示百分比的圈圈图片 - (UIImage*)progressImage:(NSString*)progress{ CGFloat imageW = 33; CGFloat imageH = 33; CGSize progressSize = [progress boundingRectWithSize:CGSizeMake(MAXFLOAT, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:12]} context:nil].size; UIGraphicsBeginImageContextWithOptions(CGSizeMake(imageW, imageH), NO,[UIScreen mainScreen].scale); CGContextRef ctx = UIGraphicsGetCurrentContext(); [[UIColor colorWithRed:238/255.0 green:238/255.0 blue:238/255.0 alpha:1]set]; CGContextAddEllipseInRect(ctx, CGRectMake(0,0,imageW,imageH)); CGContextFillPath(ctx); [[UIColor whiteColor]setFill]; CGContextAddEllipseInRect(ctx, CGRectMake(1,1,imageW-2,imageH-2)); CGContextFillPath(ctx); [progress drawInRect:CGRectMake(imageW * 0.5 - progressSize.width * 0.5 ,imageH * 0.5 - progressSize.height * 0.5 ,progressSize.width,progressSize.height) withAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:12],NSForegroundColorAttributeName:[UIColor colorWithRed:86/255.0 green:119/255.0 blue:252/255.0 alpha:1]}]; UIImage* image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return image; }
首先创建一个滑块
UISlider *sliderA=[[UISlider alloc]initWithFrame:CGRectMake(30, 320, 257, 7)];
sliderA.backgroundColor = [UIColor clearColor];
sliderA.value=1.0;
sliderA.minimumValue=0;
sliderA.maximumValue=100;
// [sliderA setMinimumTrackImage:stetchLeftTrack forState:UIControlStateNormal];
//
// [sliderA setMaximumTrackImage:stetchRightTrack forState:UIControlStateNormal];
//
// //注意这里要加UIControlStateHightlighted的状态,否则当拖动滑块时滑块将变成原生的控件
// [sliderA setThumbImage:thumbImage forState:UIControlStateHighlighted];
//
// [sliderA setThumbImage:thumbImage forState:UIControlStateNormal];
//滑块拖动时的事件
[sliderA addTarget:self action:@selector(progressChanged:) forControlEvents:UIControlEventValueChanged];
//
// //滑动拖动后的事件
// [sliderA addTarget:self action:@selector(sliderDragUp:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:sliderA];
// [self progressChanged:sliderA];
相关文章推荐
- IOS隐藏bar
- iOS-应用闪退总结
- iOS图片的循环滑动
- iOS ARC内存泄露的几种情况总结
- ios二维码生成
- iOS開発_推送证书处理p12 -> pem
- iOS 获取文件大小
- 终结照片浏览器应用ios源码
- iOS开发-捕获程序崩溃日志
- iOS_开发_工具_mac下的brew安装方法
- 【官方方法】xcode7免证书真机调试
- iOS中的block全面分析
- [转][译]关于iOS和OS X废弃的API你需要知道的一切
- iOS开发--应用崩溃日志揭秘(二)
- 不容错过的iOS 8的导航交互
- iOS开发-应用崩溃日志揭秘(一)
- iOS9系列专题6——iOS9其他适配注意点
- iOS高效编程秘诀—坚持编程习惯
- iOS学习目录
- 2015年iOS开发工程师前景分析