ios自定義條形進度條

題記atom

在今天這個變化無窮的世界,咱們最大的危險不是外界的壓力與競爭,而是咱們心裏的模式,這些模式決定咱們看到些什麼,感覺到些什麼,如何思考以及最終成爲怎麼樣的人

效果 這裏寫圖片描述code

代碼實現blog

#import <UIKit/UIKit.h>

@interface HWProgressView : UIView

@property (nonatomic, assign) CGFloat progress;
//進度條顏色
@property(nonatomic,strong) UIColor *progerssColor;
//進度條背景顏色
@property(nonatomic,strong) UIColor *progerssBackgroundColor;
//進度條邊框的顏色
@property(nonatomic,strong) UIColor *progerssStokeBackgroundColor;
//進度條邊框的寬度
@property(nonatomic,assign) CGFloat progerStokeWidth;

@end
#import "HWProgressView.h"

#define KProgressPadding 1.0f
@interface HWProgressView ()

@property (nonatomic, weak) UIView *tView;
@property (nonatomic, weak) UIView *borderView;

@end

@implementation HWProgressView

- (instancetype)initWithFrame:(CGRect)frame
{
    if (self = [super initWithFrame:frame]) {
        //邊框
        UIView *borderView = [[UIView alloc] initWithFrame:self.bounds];
        borderView.layer.cornerRadius = self.bounds.size.height * 0.5;
        borderView.layer.masksToBounds = YES;
        borderView.backgroundColor = [UIColor whiteColor];
        borderView.layer.borderColor = [[UIColor blueColor] CGColor];
        borderView.layer.borderWidth = 2.0f;
        self.borderView=borderView;
        [self addSubview:borderView];
        
        //進度
        UIView *tView = [[UIView alloc] init];
        tView.backgroundColor = [UIColor colorWithRed:0/255.0 green:191/255.0 blue:255/255.0 alpha:1];
        tView.layer.cornerRadius = (self.bounds.size.height - (2.0f + 1.0f) * 2) * 0.5;
        tView.layer.masksToBounds = YES;
        [self addSubview:tView];
        self.tView = tView;
    }
    
    return self;
}

-(void)setProgerssColor:(UIColor *)progerssColor{
    _progerssColor=progerssColor;
    _tView.backgroundColor=progerssColor;
}

-(void)setProgerStokeWidth:(CGFloat)progerStokeWidth{
    _progerStokeWidth=progerStokeWidth;
    _borderView.layer.borderWidth = progerStokeWidth;
    
}
-(void)setProgerssStokeBackgroundColor:(UIColor *)progerssStokeBackgroundColor{
    _progerssStokeBackgroundColor=progerssStokeBackgroundColor;
     _borderView.layer.borderColor = [progerssStokeBackgroundColor CGColor];
}
-(void)setProgerssBackgroundColor:(UIColor *)progerssBackgroundColor{
    _progerssBackgroundColor = progerssBackgroundColor;
    _borderView.backgroundColor=progerssBackgroundColor;
}

//更新進度
- (void)setProgress:(CGFloat)progress
{
    _progress = progress;
    
    CGFloat margin = self.progerStokeWidth + KProgressPadding;
    CGFloat maxWidth = self.bounds.size.width - margin * 2;
    CGFloat heigth = self.bounds.size.height - margin * 2;
    
    _tView.frame = CGRectMake(margin, margin, maxWidth * progress, heigth);
}

@end

使用圖片

//進度條
    HWProgressView *progressView = [[HWProgressView alloc] initWithFrame:CGRectMake(30, 365, 150, 20)];
    //進度條邊框寬度
    progressView.progerStokeWidth=1.0f;
    //進度條未加載背景
    progressView.progerssBackgroundColor=[UIColor lightGrayColor];
    //進度條已加載 顏色
    progressView.progerssColor=[UIColor blueColor];
    //背景邊框顏色
    progressView.progerssStokeBackgroundColor=[UIColor grayColor];
    [self.view addSubview:progressView];
    self.progressView = progressView;

更新進度it

self.progressView.progress += 0.01;
相關文章
相關標籤/搜索