12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- //
- // TZProgressView.m
- // TZImagePickerController
- //
- // Created by ttouch on 2016/12/6.
- // Copyright © 2016年 谭真. All rights reserved.
- //
- #import "TZProgressView.h"
- @interface TZProgressView ()
- @property (nonatomic, strong) CAShapeLayer *progressLayer;
- @end
- @implementation TZProgressView
- - (instancetype)init {
- self = [super init];
- if (self) {
- self.backgroundColor = [UIColor clearColor];
-
- _progressLayer = [CAShapeLayer layer];
- _progressLayer.fillColor = [[UIColor clearColor] CGColor];
- _progressLayer.strokeColor = [[UIColor whiteColor] CGColor];
- _progressLayer.opacity = 1;
- _progressLayer.lineCap = kCALineCapRound;
- _progressLayer.lineWidth = 5;
-
- [_progressLayer setShadowColor:[UIColor blackColor].CGColor];
- [_progressLayer setShadowOffset:CGSizeMake(1, 1)];
- [_progressLayer setShadowOpacity:0.5];
- [_progressLayer setShadowRadius:2];
- }
- return self;
- }
- - (void)drawRect:(CGRect)rect {
- CGPoint center = CGPointMake(rect.size.width / 2, rect.size.height / 2);
- CGFloat radius = rect.size.width / 2;
- CGFloat startA = - M_PI_2;
- CGFloat endA = - M_PI_2 + M_PI * 2 * _progress;
- _progressLayer.frame = self.bounds;
- UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:center radius:radius startAngle:startA endAngle:endA clockwise:YES];
- _progressLayer.path =[path CGPath];
-
- [_progressLayer removeFromSuperlayer];
- [self.layer addSublayer:_progressLayer];
- }
- - (void)setProgress:(double)progress {
- _progress = progress;
- [self setNeedsDisplay];
- }
- @end
|