iOS进度指示器——NSProgress

一、引言

在iOS7之前,系统一直没有提供一个完整的框架来描述任务进度相关的功能。这使得在开发中进行耗时任务进度的监听将什么麻烦,在iOS7之后,系统提供了NSProgress类来专门报告任务进度。

二、创建单任务进度监听器

单任务进度的监听是NSProgress最简单的一种运用场景,我们来用定时器模拟一个耗时任务,示例代码如下:

@interface ViewController ()

{

NSProgress * progress;

}

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

//这个方法将创建任务进度管理对象 UnitCount是一个基于UI上的完整任务的单元数

progress = [NSProgress progressWithTotalUnitCount:10];

NSTimer * timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(task) userInfo:nil repeats:YES];

//对任务进度对象的完成比例进行监听

[progress addObserver:self forKeyPath:@"fractionCompleted" options:NSKeyValueObservingOptionNew context:nil];

}

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context

{

NSLog(@"进度= %f",progress.fractionCompleted);

}

-(void)task{

//完成任务单元数+1

if (progress.completedUnitCount

你可能感兴趣的:(iOS进度指示器——NSProgress)