首页 > 其他 > 详细

使用CAShapeLayer做出圆形的进度条 —— #DF!

时间:2015-09-24 10:56:21      阅读:124      评论:0      收藏:0      [点我收藏+]
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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!