简陋的评分进度条动画
来源:互联网 发布:磁盘优化20遍还没停 编辑:程序博客网 时间:2024/06/05 22:52
简陋的评分进度条动画
改变颜色
改变长度
使用drawRect方式构建所需UIview
代码
Line.h
#import <UIKit/UIKit.h>@interface Line : UIView@property (nonatomic,assign) NSNumber *with; //线宽@property (nonatomic,strong) UIColor *color; //颜色@property (nonatomic,assign) float star; //评分@end
Line.m
#import "Line.h"#define kscreenHeight (self.frame.size.height)#define kscreenWidth (self.frame.size.width)@interface Line(){ CGContextRef _context; CADisplayLink *_displayLink; float _addfloat; //添加数值 float _curretnfloat; //当前数值 float _jianfloat; //减去数值 float _starNum;}@end@implementation Line-(instancetype)initWithFrame:(CGRect)frame{ if ([super initWithFrame:frame]) { [self setCADisplayLink]; _curretnfloat = 0; }return self;}-(void)setCADisplayLink{ _addfloat = 0; _jianfloat = 100; _displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(changeValue)]; [_displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];}-(void)setInit{ _with = @(15); _color = [UIColor orangeColor];}-(void)drawRect:(CGRect)rect{ //初始化 _context = UIGraphicsGetCurrentContext(); [self setInit]; CGContextSaveGState(_context); CGContextSetLineWidth(_context, [_with doubleValue]); CGContextSetLineCap(_context, kCGLineCapRound); CGContextMoveToPoint(_context, 0, kscreenHeight/2); CGContextAddLineToPoint(_context,_curretnfloat, kscreenHeight/2); CGContextSetStrokeColorWithColor(_context, [UIColor colorWithRed:222/255.0 green:_jianfloat/255.0 blue:0/255.0 alpha:0.8].CGColor); CGContextStrokePath(_context); CGContextRestoreGState(_context);}-(void)setStar:(float)star{ _star = star; _starNum = star; _star = _star/5 * self.frame.size.width; NSLog(@"%f",_star);}-(void)changeValue{ //控制进度 if (_curretnfloat < _star) { _addfloat = 3+_addfloat; _curretnfloat = _addfloat; _jianfloat = -0.7 + _jianfloat; NSLog(@"%f",_jianfloat); }else{ [_displayLink invalidate]; } [self setNeedsDisplay];}- (UIColor *) hexStringToColor: (NSString *) stringToConvert{ NSString *cString = [[stringToConvert stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString]; // String should be 6 or 8 characters if ([cString length] < 6) return [UIColor blackColor]; // strip 0X if it appears if ([cString hasPrefix:@"0X"]) cString = [cString substringFromIndex:2]; if ([cString hasPrefix:@"#"]) cString = [cString substringFromIndex:1]; if ([cString length] != 6) return [UIColor blackColor]; // Separate into r, g, b substrings NSRange range; range.location = 0; range.length = 2; NSString *rString = [cString substringWithRange:range]; range.location = 2; NSString *gString = [cString substringWithRange:range]; range.location = 4; NSString *bString = [cString substringWithRange:range]; // Scan values unsigned int r, g, b; [[NSScanner scannerWithString:rString] scanHexInt:&r]; [[NSScanner scannerWithString:gString] scanHexInt:&g]; [[NSScanner scannerWithString:bString] scanHexInt:&b]; return [UIColor colorWithRed:((float) r / 255.0f) green:((float) g / 255.0f) blue:((float) b / 255.0f) alpha:1.0f];}@end
GitHUb
https://github.com/tianNanYiHao/MyTestDemo.git
0 0
- 简陋的评分进度条动画
- 进度条评分
- 动画方式切换的进度条
- 不错的android进度条动画
- 带动画的圆形进度条
- 简陋的js菜单
- 一个简陋的makefile
- 【练习】简陋的便签
- 简陋的分布式爬虫
- 安卓评分进度条RatingBar
- 安卓评分进度条RatingBar
- 3-6进度条,评分控件
- 自定义可拖拽评分进度条控件
- 进度条动画
- 进度条动画
- 包含图形、动画、进度条等等的状态栏
- ios 图片,动画效果的进度条
- android带动画的圆形进度条
- hibernate缓存机制详细分析
- 关于斜率优化DP
- android学习前后历程回顾,以及对资源分享,查缺补漏,温故知新———我是新手我标记
- Js apply call方法 详解
- latex 首行不缩进,第二行开始缩进,悬挂缩进的LaTeX实现
- 简陋的评分进度条动画
- HTTP协议的头信息详解
- 携程、去哪儿、艺龙,三分归一统的复盘与展望
- 普通表转换分区表操作步骤
- lua string 库
- iOS系统原生二维码条形码扫描
- iOS UIBezierPath--贝塞尔曲线
- HDU 4888 最大流+判环
- 跟我学AngularJs:Controller数据共享、继承、通信使用详解