开始运行时ActivityIndicatorView和ProgressView同时运行,当ProgressView的值是1时,ActivityIndicatorView停止转动,并且隐藏。
#import "ViewController.h"
@interface ViewController ()
{
//首先创建两个控件
UIActivityIndicatorView *activityIndicator;
UIProgressView *progressView;
}
@end
@implementation ViewController
- (IBAction)startIndicator:(id)sender {
//初始化指示器
//activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(140, 200, 30, 30)];
/*
指定指示器的类型
一共有三种类型:
UIActivityIndicatorViewStyleWhiteLarge //大型白色指示器
UIActivityIndicatorViewStyleWhite //标准尺寸白色指示器
UIActivityIndicatorViewStyleGray //灰色指示器,用于白色背景
*/
activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhite;
//停止后是否隐藏(默认为YES)
activityIndicator.hidesWhenStopped = YES;
//将Indicator添加到视图中
[self.view addSubview:activityIndicator];
//开始转动
[activityIndicator startAnimating];
//操作队列
NSOperationQueue *operationQueue = [[NSOperationQueue alloc] init];
//设置最大的操作数
[operationQueue setMaxConcurrentOperationCount:1];
//构建一个操作对象,selector指定的方法是在另外一个线程中运行的
NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self
selector:@selector(runIndicator) object:nil];
//将操作加入队列,此时后台线程开始执行
[operationQueue addOperation:operation];
}
- (IBAction)startProgress:(id)sender {
progressView = [[UIProgressView alloc] initWithFrame:CGRectMake(70, 560, 180, 20)];
/*
设置风格属性
有两种风格属性:
UIProgressViewStyleDefault
UIProgressViewStyleBar
*/
progressView.progressViewStyle = UIProgressViewStyleDefault;
//设置进度,值为0——1.0的浮点数
// self.progressView.progress = .5;
[self.view addSubview:progressView];
//设定计时器,每隔1s调用一次runProgress方法
[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(runProgress) userInfo:nil repeats:YES];
}
//在状态栏显示有网络请求的提示器
- (IBAction)startNetWork:(id)sender {
UIApplication *app = [UIApplication sharedApplication];
if (app.isNetworkActivityIndicatorVisible) {
app.networkActivityIndicatorVisible = NO;
}else {
app.networkActivityIndicatorVisible = YES;
}
}
-(void)runIndicator
{
//开启线程并睡眠三秒钟
[NSThread sleepForTimeInterval:3];
//停止UIActivityIndicatorView
[activityIndicator stopAnimating];
}
//增加progressView的进度
-(void)runProgress
{
progressView.progress +=0.1;
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(140, 200, 30, 30)];
[self startIndicator: activityIndicator];
[self startProgress:progressView];
}