自定义进度条(菜鸟版)

下面是代码 , 部分有注解

先创建一个类 

#import <UIKit/UIKit.h>

@interface MYjindutiao : UIView
@property(strong,nonatomic)UIView *aview;
@property(strong,nonatomic)UIView *bview;
@property(strong,nonatomic)UILabel *laber;
@property(strong,nonatomic)NSTimer *time;
@property(assign,nonatomic)int  a;

@end
#import "MYjindutiao.h"

@implementation MYjindutiao

- (instancetype)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        
        self.aview=[[UIView alloc]initWithFrame:CGRectMake(100, 100, 200, 30)];
        self.aview.backgroundColor=[UIColor colorWithRed:0.082 green:0.969 blue:1.000 alpha:1.000];
        //使它边角变圆
        self.aview.layer.cornerRadius=10;
        self.aview.layer.masksToBounds=YES;
        self.bview=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 0, 30)];
        self.bview.backgroundColor=[UIColor colorWithRed:0.020 green:1.000 blue:0.085 alpha:1.000];
        self.bview.layer.cornerRadius=10;
        self.bview.layer.masksToBounds=YES;
        self.laber=[[UILabel alloc]initWithFrame:CGRectMake(100, 200, 200, 200)];
        self.laber.backgroundColor=[UIColor colorWithRed:1.000 green:0.885 blue:0.050 alpha:1.000];
        //使laber变成球形
        self.laber.layer.cornerRadius=100;
        self.laber.layer.masksToBounds=YES;
        //字体居中
        self.laber.textAlignment=NSTextAlignmentCenter;
        //字体放大
        self.laber.font=[UIFont systemFontOfSize:40 weight:40];
        self.laber.textColor=[UIColor colorWithRed:0.957 green:0.950 blue:1.000 alpha:1.000];
        [self addSubview:self.aview];
        [self.aview addSubview:self.bview];
        [self addSubview: self.laber];
        self.time=[NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(change) userInfo:nil repeats:YES];
        [[NSRunLoop mainRunLoop] addTimer:self.time forMode:NSDefaultRunLoopMode];
        
        
        
    }
    return self;
}


-(void)change
{
    CGRect chFrame=self.bview.frame;
    chFrame.size.width+=0.25;
    self.bview.frame=chFrame;
    self.laber.text=[NSString stringWithFormat:@"%.2f%%",self.bview.frame.size.width/2];
    if (self.bview.frame.size.width==self.a) {
        //清除定时器
        [self.time invalidate];
    }
    
}

@end
#import <UIKit/UIKit.h>
#import "MYjindutiao.h"
@interface ViewController : UIViewController
@property(strong,nonatomic)MYjindutiao *jindutiao;
@end
#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.jindutiao=[[MYjindutiao alloc]initWithFrame:CGRectMake(0, 100, 300, 500)];
    self.jindutiao.a=160;
    [self.view addSubview:self.jindutiao];
    
    
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

  

原文地址:https://www.cnblogs.com/fume/p/5263681.html