标签:
CircleView.h的内容如下:
#import <UIKit/UIKit.h>
@interface CircleView : UIView
@property (nonatomic, assign) CGFloat startValue;
@property (nonatomic, assign) CGFloat lineWidth;
@property (nonatomic, strong) UIColor *lineColor;
@property (nonatomic, assign) CGFloat value;
@end
===================
CircleView.m的内容如下:
#import "CircleView.h"
@interface CircleView ()
@property (nonatomic, strong) CAShapeLayer *shapeLayer;
@end
@implementation CircleView
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
_shapeLayer = [CAShapeLayer layer];
_shapeLayer.frame = self.bounds;
UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:self.bounds];
_shapeLayer.path = path.CGPath;
_shapeLayer.fillColor = [UIColor clearColor].CGColor;
_shapeLayer.lineWidth = 1.f;
_shapeLayer.strokeColor = [UIColor redColor].CGColor;
_shapeLayer.strokeEnd = 0.f;
[self.layer addSublayer:_shapeLayer];
}
return self;
}
@synthesize startValue = _startValue;
- (void)setStartValue:(CGFloat)startValue {
_startValue = startValue;
_shapeLayer.strokeEnd = startValue;
}
- (CGFloat)startValue {
return _startValue;
}
@synthesize lineWidth = _lineWidth;
- (void)setLineWidth:(CGFloat)lineWidth {
_lineWidth = lineWidth;
_shapeLayer.lineWidth = lineWidth;
}
- (CGFloat)lineWidth {
return _lineWidth;
}
@synthesize lineColor = _lineColor;
- (void)setLineColor:(UIColor *)lineColor {
_lineColor = lineColor;
_shapeLayer.strokeColor = lineColor.CGColor;
}
- (UIColor *)lineColor {
return _lineColor;
}
@synthesize value = _value;
- (void)setValue:(CGFloat)value {
_value = value;
_shapeLayer.strokeEnd = value;
}
- (CGFloat)value {
return _value;
}
@end
使用CAShapeLayer做出圆形的进度条 —— #DF!
标签:
原文地址:http://www.cnblogs.com/sixindev/p/4834343.html