iOS NSProgress 使用介绍

首先,要非常感谢博主“响尾猫”的文章  iOS进度指示器——NSProgress 对我的启示~~~下面是正文

NSProgress是iOS 7 之后Apple推出的用于进度管理的指示器类。当我们的App需要执行长时间的耗时任务时,可以使用NSProgress去显示任务执行的进度。适用场景如大图片、Gif加载等。

通过阅读NSProgress.h中的介绍,可以将NSProgess的工作原理总结为下面几点:

1、被监视的任务可以被拆分成一个树状结构,每一个父任务可以含有多个子任务,但是每一个子任务只能包含一个父任务。树的根节点就是需要展示给用户的完成进度。当子任务完成后,树的状态会被刷新。

2、NSProgress通过单元计数器 "Unit count"管理被跟踪的任务。在Unit count中有两个重要的值,分别是total 总量和complete 已完成。total在NSProgress对象被初始化的时候设置,complete则在任务执行的过程中通过 -setCompletedUnitCount:函数更新。

示例代码:

首先,在ViewDidLoad中定义一个NSTimer用于模拟耗时程序,初始化NSProgress的对象progress。NSTimer每隔一秒执行一次Task函数,Task每执行一次,porgress的complete 加 1

图1

Task函数,模拟执行耗时任务

Task

设置键值监听器,监听progress的fractionComplete的值

监听函数


输出结果

你可能感兴趣的:(iOS NSProgress 使用介绍)