ios线程练习更新进度条

类似于,我们加载网页时候的进度条,我们来看看它们是怎么工作的。

#import "ViewController.h"


@interface ViewController ()

{

    UIProgressView *_view;

}

@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

  

    

    //设置进度条

    _view = [[UIProgressView alloc]init];

        _view.frame = CGRectMake(20, 100, 300, 3);

    _view.progress = 0;

    [self.view addSubview:_view];

    

    

    

    UIButton *btn = [[UIButton alloc]init];

    btn.frame = CGRectMake(60, 150, 200, 20);

    [btn setTitle:@"点击更新" forState:UIControlStateNormal];

    btn.backgroundColor = [UIColor redColor];

    [btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];

    [self.view addSubview:btn];

    

    

    

}


//在子线程中更新进度条

-(void)btnClick:(UIButton *)btn

{

    

    //表现在幕后

    [self performSelectorInBackground:@selector(updateProgressView) withObject:nil];

    

}



-(void)updateProgressView

{

    

    while (1) {

        if (_view.progress<1) {

            //每次累加0.0001的值

            NSNumber *number = [NSNumber numberWithFloat:_view.progress+0.0001];

            [self performSelectorOnMainThread:@selector(setProgressViewProgress:) withObject:number waitUntilDone:NO];

            

            //延迟0.0005

            [NSThread sleepForTimeInterval:0.0005];

        }

        else//否则结束

        {

            

            break;

        }

    }

    

    NSLog(@"1111");

    

    

}



//更新进度条()

-(void)setProgressViewProgress:(NSNumber *)number

{

    //progressview设置数值

    [_view setProgress:[number floatValue]];

}


@end



今天2更了,明天继续。求知若饥,虚心若愚。这几天找工作找的蛮辛苦的,在大上海不容易啊,明天就要去面试了,估计一天都在外面跑,只有晚上有时间能给大家写东西,我会保持下去的,同时保证质量,当然如果有错误的话,大家可以明确指出来,我可以修改。嘻嘻,祝大家美梦,晚安。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值