From 3e8437ae559487362fae3525beb79c534c213a51 Mon Sep 17 00:00:00 2001
From: 单军华
Date: Thu, 12 Jul 2018 13:44:34 +0800
Subject: [PATCH] bug修复和功能优化

---
 screendisplay/screendisplay/Classes/Category/ProgressView/GradientProgressView.m |  103 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 103 insertions(+), 0 deletions(-)

diff --git a/screendisplay/screendisplay/Classes/Category/ProgressView/GradientProgressView.m b/screendisplay/screendisplay/Classes/Category/ProgressView/GradientProgressView.m
new file mode 100644
index 0000000..c48bd9d
--- /dev/null
+++ b/screendisplay/screendisplay/Classes/Category/ProgressView/GradientProgressView.m
@@ -0,0 +1,103 @@
+//
+//  GradientProgressView.m
+//  screendisplay
+//
+//  Created by ��������� on 2018/7/10.
+//  Copyright �� 2018��� ���������. All rights reserved.
+//
+
+#import "GradientProgressView.h"
+
+@interface GradientProgressView (){
+    UIColor *_bgProgressColor;
+    NSArray *_colorArr;
+    CGFloat _progress;
+}
+
+@property (nonatomic, strong) CALayer *bgLayer;
+@property (nonatomic, strong) CAGradientLayer *gradientLayer;
+
+@end
+
+@implementation GradientProgressView
+
+- (void)setProgress:(CGFloat)progress {
+    if (progress < 0) {
+        _progress = 0;
+    }
+    if (progress > 1) {
+        _progress = 1;
+    }
+    _progress = progress;
+    [self updateProgressView];
+}
+
+- (void)setColorArr:(NSArray *)colorArr {
+    if (colorArr.count >= 2) {
+        _colorArr = colorArr;
+    }else {
+        NSLog(@">>>>>������������������������2���������������������");
+    }
+}
+
+- (void)updateProgressView {
+    self.gradientLayer.bounds = CGRectMake(0, 0, self.frame.size.width * self.progress, self.frame.size.height);
+    self.gradientLayer.colors = self.colorArr;
+}
+
+#pragma mark - init
+
+/*���Xib���������������������*/
+- (instancetype)initWithCoder:(NSCoder *)aDecoder{
+    
+    self = [super initWithCoder:aDecoder];
+    if(self) {
+        [self commonInit];
+    }
+    return self;
+}
+
+/*������������������������������*/
+- (instancetype)initWithFrame:(CGRect)frame{
+    
+    self = [super initWithFrame:frame];
+    if(self) {
+        [self commonInit];
+    }
+    return self;
+}
+
+- (void)commonInit{
+    _colorArr = @[(id)HexColor(0xFDDF76).CGColor, (id)HexColor(0xFEBC19).CGColor];
+    _progress = 0.65;
+    _bgProgressColor = HexColor(0xf2f2f2);
+}
+
+-(void)drawRect:(CGRect)rect{
+    
+    if (!_bgLayer) {
+        _bgLayer = [CALayer layer];
+        //������������frame������������������������������
+        _bgLayer.bounds = CGRectMake(0, 0, rect.size.width, rect.size.height);
+        _bgLayer.anchorPoint = CGPointMake(0, 0);
+        _bgLayer.backgroundColor = self.bgProgressColor.CGColor;
+        //        _bgLayer.cornerRadius = rect.size.height / 2.;
+        [self.layer addSublayer:_bgLayer];
+    }
+    if (!_gradientLayer) {
+        _gradientLayer = [CAGradientLayer layer];
+        _gradientLayer.bounds = CGRectMake(0, 0, rect.size.width * self.progress, rect.size.height);
+        _gradientLayer.startPoint = CGPointMake(0, 0);
+        _gradientLayer.endPoint = CGPointMake(1, 0);
+        _gradientLayer.anchorPoint = CGPointMake(0, 0);
+        NSArray *colorArr = self.colorArr;
+        _gradientLayer.colors = colorArr;
+        
+        //_gradientLayer.cornerRadius = rect.size.height / 2.;
+        [self.layer addSublayer:_gradientLayer];
+    }
+    //self.layer.cornerRadius = rect.size.height / 2.;
+    self.clipsToBounds = YES;
+}
+
+@end

--
Gitblit v1.8.0