iOS 自訂進度條,ios自訂進度條

來源:互聯網
上載者:User

iOS 自訂進度條,ios自訂進度條
自訂條形進度條(iOS)

ViewController.m檔案

#import "ViewController.h"@interface ViewController ()@property(strong,nonatomic)UIButton *btnBegin;@property(strong,nonatomic)UIButton *btnStop;@property(strong,nonatomic)UIButton *btnResert;@property(strong,nonatomic)UITextField *shangx;@property(strong,nonatomic)UIproessMy *proess;@end@implementation ViewController- (void)viewDidLoad {        self.proess=[[UIproessMy alloc]initWithFrame:CGRectMake(80, 100, 250, 20)];    self.proess.backgroundColor=[UIColor clearColor];    [self.view addSubview:self.proess];    //設定值 百分比    self.proess.index=80;    [self setBtn];}//產生按鈕-(void)setBtn{        self.btnBegin=[[UIButton alloc]initWithFrame:CGRectMake(100, 500, 200, 50)];    self.btnBegin.backgroundColor=[UIColor colorWithRed:0.294 green:1.000 blue:0.368 alpha:1.000];    self.btnBegin.layer.cornerRadius=25;    self.btnBegin.layer.masksToBounds=YES;    [self.btnBegin setTitle:@"開始" forState:UIControlStateNormal];    [self.btnBegin addTarget:self action:@selector(chang) forControlEvents:UIControlEventTouchUpInside];    [self.view addSubview:self.btnBegin];        self.btnStop=[[UIButton alloc]initWithFrame:CGRectMake(100, 600, 200, 50)];    self.btnStop.backgroundColor=[UIColor colorWithRed:0.294 green:1.000 blue:0.368 alpha:1.000];    self.btnStop.layer.cornerRadius=25;    self.btnStop.layer.masksToBounds=YES;    [self.btnStop setTitle:@"停止" forState:UIControlStateNormal];    [self.btnStop addTarget:self action:@selector(stopBtn) forControlEvents:UIControlEventTouchUpInside];    [self.view addSubview:self.btnStop];            self.btnResert=[[UIButton alloc]initWithFrame:CGRectMake(100, 400, 200, 50)];    self.btnResert.backgroundColor=[UIColor colorWithRed:0.294 green:1.000 blue:0.368 alpha:1.000];    self.btnResert.layer.cornerRadius=25;    self.btnResert.layer.masksToBounds=YES;    [self.btnResert setTitle:@"重設" forState:UIControlStateNormal];    [self.btnResert addTarget:self action:@selector(Resert) forControlEvents:UIControlEventTouchUpInside];    [self.view addSubview:self.btnResert];}//停止-(void)stopBtn{    [self.proess stop];}//開始-(void)chang{    [self.proess begin];}//重設-(void)Resert{    [self.proess resert];}- (void)didReceiveMemoryWarning {    [super didReceiveMemoryWarning];  }@end

自訂類

UIproessMy.h

#import <UIKit/UIKit.h>@interface UIproessMy : UIView@property(strong,nonatomic)UIView *aView;@property(strong,nonatomic)UIView *UIProess;@property(strong,nonatomic)UILabel *label;@property(strong,nonatomic)NSTimer *time;@property(assign,nonatomic)float index;-(void)change;-(void)begin;-(void)stop;-(void)resert;@end

UIproessMy.m檔案

#import "UIproessMy.h"@implementation UIproessMy- (instancetype)initWithFrame:(CGRect)frame{    self = [super initWithFrame:frame];    if (self) {        //初始化        self.aView=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 250, 20)];        self.aView.backgroundColor=[UIColor colorWithRed:0.841 green:0.848 blue:0.773 alpha:1.000];        self.UIProess=[[UIView alloc]initWithFrame:CGRectMake(0, 1,0, 18)];        self.aView.layer.cornerRadius=10;        self.aView.layer.masksToBounds=YES;        self.UIProess.layer.cornerRadius=10;        self.UIProess.layer.masksToBounds=YES;        self.UIProess.backgroundColor=[UIColor colorWithRed:0.327 green:0.816 blue:0.075 alpha:1.000];                self.label=[[UILabel alloc]initWithFrame:CGRectMake(0, 50, 250, 200)];        self.label.backgroundColor=[UIColor colorWithRed:0.457 green:0.889 blue:1.000 alpha:1.000];        self.label.layer.cornerRadius=100;        self.label.layer.masksToBounds=YES;        self.label.textAlignment=NSTextAlignmentCenter;        self.label.font=[UIFont boldSystemFontOfSize:50];        self.label.text=[NSString stringWithFormat:@"0%%"];        [self.aView addSubview:self.UIProess];        [self addSubview:self.aView];        [self addSubview:self.label];                 }    return self;}//開始-(void)begin{    if (self.UIProess.frame.size.width<250*(self.index)*0.01) {        self.time=[NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(change) userInfo:nil repeats:YES];        [[NSRunLoop mainRunLoop] addTimer:self.time forMode:NSDefaultRunLoopMode];    }else{         [self.time invalidate];    }    }//重設-(void)resert{    [self initWithFrame:CGRectMake(0, 1, 0, 18)];    self.label.text=[NSString stringWithFormat:@"0%%"];    [self.time setFireDate:[NSDate distantFuture]];}//停止-(void)stop{    int a=1;    if (a==1) {        [self.time setFireDate:[NSDate distantFuture]];        a=0;    }else{        [self.time setFireDate:[NSDate date]];        a=1;    }  }//變化 調用定時器-(void)change{    CGRect changeFrame=self.UIProess.frame;    changeFrame.size.width+=0.25;    self.UIProess.frame=changeFrame;    if (self.UIProess.frame.size.width>=250*(self.index)*0.01) {        [self.time invalidate];//        [self initWithFrame:self.UIProess.frame];    }    self.label.text=[NSString stringWithFormat:@"%.1f%%",self.UIProess.frame.size.width/250*100];}@end

效果

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.