美文网首页
简单进度条

简单进度条

作者: lichengjin | 来源:发表于2016-04-03 23:29 被阅读136次

#import<UIKit/UIKit.h>

@interface ViewController : UIViewController

/**

*  进度条的底层视图

*/

@property(strong,nonatomic) UIView *myview;

/**

*  进度条的变化视图

*/

@property(strong,nonatomic) UIView *Aview;

/**

*  显示进度值

*/

@property(strong,nonatomic) UILabel *lbltext;

/**

*  控制进度条的进度

*/

@property(strong,nonatomic) NSTimer *timer;

/**

*  暂无

*/

@property(strong,nonatomic) UITextField *textfield;

@end

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

static float sec = 0.0;

- (void)viewDidLoad {

    [super viewDidLoad];    

    //初始化视图 

   self.Aview = [[UIView alloc] initWithFrame:CGRectMake(50, 200, 300, 30)];

    //设置视图的背景颜色

    self.Aview.backgroundColor = [UIColor brownColor];

    //对视图进行倒圆角

    self.Aview.layer.cornerRadius = 10;

    //添加视图到父视图

    [self.view addSubview:self.Aview];

        //初始化视图

    self.myview = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 30)];

    //设置视图 的背景颜色

    self.myview.backgroundColor = [UIColor blueColor];

    //对视图的宽度进行倒圆角

    self.myview.layer.cornerRadius = 10;

    //添加 myview视图 到 Aview视图上

    [self.Aview addSubview:self.myview];

        self.textfield = [[UITextField alloc] initWithFrame:CGRectMake(100, 240, 200, 100)];

    self.textfield.backgroundColor = [UIColor greenColor];    

   self.textfield.layer.cornerRadius = 50;

    self.textfield.textAlignment = NSTextAlignmentCenter;

    self.textfield.font = [UIFont boldSystemFontOfSize:25]; 

   self.textfield.keyboardType = UIKeyboardTypeNumberPad;

    self.textfield.placeholder = @"请输入0~100的数";

    [self.view addSubview:self.textfield];

        //初始化标签

    self.lbltext = [[UILabel alloc] initWithFrame:CGRectMake(50, 170, 200, 30)];

    //添加标签文字

    self.lbltext.text = @"进度条";

    //添加标签的背景颜色

    self.lbltext.backgroundColor = [UIColor orangeColor];

    //设置标签的字体大小

    self.lbltext.font = [UIFont boldSystemFontOfSize:30];

    //将字体进行居中书写

    self.lbltext.textAlignment = NSTextAlignmentCenter;

    //添加到父视图

    [self.view addSubview:self.lbltext]; 

       //添加定时器

    self.timer = [NSTimer scheduledTimerWithTimeInterval:0.02 target:self selector:@selector(handl) userInfo:nil repeats:YES];

}

//触发事件

-(void)handl{

    //获取 myview 视图 的bounds 

   CGRect rect = self.myview.bounds;

    //在标签上显示进度值

    self.lbltext.text = [NSString stringWithFormat:@"进度:%.2f%%",sec];

    //获取 myview视图 的 宽度

    rect.size.width = sec*3;

    //给myview视图重新设置 尺寸

    self.myview.frame = rect;

    //设置定时器在多少的时间内停止

    if (sec > 14) { 

       //使定时器无效

        [self.timer invalidate];

        //给定时器设置为空

        self.timer = nil;

    } 

   //设置 sec 的步进

    sec +=0.1;

}

-(void)touchesBegan:(NSSet*)touches withEvent:(UIEvent *)event

{

if ([self.textfield isFirstResponder]) {

[self.textfield resignFirstResponder];

}

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

@end

相关文章

网友评论

      本文标题:简单进度条

      本文链接:https://www.haomeiwen.com/subject/vlmulttx.html