UIActivityIndicatorView(非明确进度条)是一个旋转到进度条组件
UIProgressViewStyle 有两个枚举变量
progressViewStyle 属性
1. UIProgressViewStyleDefault
2. UIProgressViewStyleBar 一般用于toolbar
progressTintColor 属性
填充部分的颜色(譬如进度到30%,那么30%部分的颜色就是这个属性)
progressImage 属性
填充部分的图片,设置图片之后progressTintColor无效
trackTintColor 属性
未填充部分的颜色
trackImage 属性
未填充部分的图片,设置图片后trackTintColor无效
//
// ViewController.m
// UIProgressViewDemo
//
// Created by Apple on 16/5/12.
// Copyright © 2016年 Apple. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
//声明一个UIProgressView控件
UIProgressView* progressView;
- (void)viewDidLoad {
[super viewDidLoad];
/*
UIProgressViewStyleDefault, 默认
UIProgressViewStyleBar, 在工具栏上显示
*/
// 创建 明确 进度条(注意设置的高度没有用)
progressView = [[UIProgressView alloc] initWithFrame:CGRectMake(10, 80, 300, 50)];
// 设置进度条的状态 进度值范围是0.0 ~ 1.0 1.0 表示100%
[progressView setProgressViewStyle:UIProgressViewStyleDefault];
// 设置进度条的当前进度值(默认是0.0 ,进度值的范围是0.0 ~ 1.0 [100%])
[progressView setProgress:0.2];
//属性 填充进度部分的颜色(譬如进度到50%,那么50%部分的颜色就是这个属性)
[progressView setProgressTintColor:[UIColor redColor]];
//属性,未填充部分的颜色
[progressView setTrackTintColor:[UIColor grayColor]];
[self.view addSubview:progressView];
// 按钮
UIButton* btnStart = [UIButton buttonWithType:UIButtonTypeSystem];
// 按钮位置
btnStart.frame = CGRectMake(50,200,100,50);
// 设置按钮上的文字
[btnStart setTitle:@"启动" forState:UIControlStateNormal];
// 按钮事件
[btnStart addTarget:self action:@selector(onStart:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btnStart];
// 按钮
UIButton* btnEnd = [UIButton buttonWithType:UIButtonTypeSystem];
// 按钮位置
btnEnd.frame = CGRectMake(150,200,100,50);
// 设置按钮上的文字
[btnEnd setTitle:@"取消" forState:UIControlStateNormal];
// 按钮事件
[btnEnd addTarget:self action:@selector(onEnd:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btnEnd];
}
// 定时器
NSTimer* timer;
-(void) onStart:(id)sender{
// 进度条从头开始
progressView.progress = 0;
// 定时器 每隔1秒 执行一次changeProgress()方法进行进度条更新
timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(changeProgress) userInfo:nil repeats:YES];
}
-(void) onEnd:(id)sender{
//结束定时器
[timer invalidate];
}
float i = 0;
- (void)changeProgress {
// 如果进度条的进度值小于1.0,则进度条改变
if (progressView.progress <1.0) {
i += 0.1;
progressView.progress = i;
}else{
//结束定时器
[timer invalidate];
i = 0;
progressView.progress = 0;
}
}
@end
效果图如下:
UIProgressView(明确进度条)是百分比进度条组件,如音乐,视频的播放进度和上传下载进度等等...
UIActivityIndicatorView(活动指示器[非明确进度条])是一个旋转到进度条组件
initWithActivityIndicatorStyle是UIActivityIndicatorView唯一的初始化方法
属性值是一个枚举变量,只有三个值:
UIActivityIndicatorViewStyleWhite; 白色圆圈
UIActivityIndicatorViewStyleWhiteLarge; 白色圆圈 但是要大些
UIActivityIndicatorViewStyleGray; 灰色圆圈
startAnimating // 开始旋转
stopAnimating // 结束旋转
setHidesWhenStopped:YES //当旋转结束时隐藏
//
// ViewController.m
// UIActivityIndicatorViewDemo
//
// Created by Apple on 16/5/12.
// Copyright © 2016年 Apple. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
UIActivityIndicatorView* progressView;
- (void)viewDidLoad {
[super viewDidLoad];
// 不确定进度条
/*
UIActivityIndicatorViewStyleWhiteLarge, 默认的大进度条
UIActivityIndicatorViewStyleWhite,
UIActivityIndicatorViewStyleGray, 小进度条(在工具栏上使用)
*/
progressView = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(100, 50, 100, 100)];
// 设置进度条背景
[progressView setBackgroundColor:[UIColor grayColor]];
//设置不确定进度条 风格样式
[progressView setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhiteLarge];
// 开启不确定进度条
// [progressView startAnimating];
[self.view addSubview:progressView];
// 按钮
UIButton* btnStart = [UIButton buttonWithType:UIButtonTypeSystem];
// 按钮位置
btnStart.frame = CGRectMake(50,200,100,50);
// 设置按钮上的文字
[btnStart setTitle:@"启动" forState:UIControlStateNormal];
// 按钮事件
[btnStart addTarget:self action:@selector(onStart:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btnStart];
// 按钮
UIButton* btnEnd = [UIButton buttonWithType:UIButtonTypeSystem];
// 按钮位置
btnEnd.frame = CGRectMake(150,200,100,50);
// 设置按钮上的文字
[btnEnd setTitle:@"取消" forState:UIControlStateNormal];
// 按钮事件
[btnEnd addTarget:self action:@selector(onEnd:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btnEnd];
}
-(void) onStart:(id)sender{
// 开启不确定进度条
[progressView startAnimating];
}
-(void) onEnd:(id)sender{
// 关闭不确定进度条
[progressView stopAnimating];
}
@end
效果图如下: