如何显示后台线程中执行任务的进度视图

时间:2015-11-18 09:31:57

标签: ios swift progress-bar nsurlsession

我正在使用NSURLSession's dataTaskWithRequest将数据下载到我的应用中。

目前,当我的应用从网络服务器下载数据时,我会在视图控制器上显示活动视图覆盖

我的用户要求我显示跟踪下载过程执行完成情况的自定义动画。

我知道dataTaskWithRequestasynchronous并在background thread中执行。我也知道我可以NSURLSessionDelegate方法

func URLSession(session: NSURLSession, task: NSURLSessionTask, didSendBodyData bytesSent: Int64, totalBytesSent: Int64, totalBytesExpectedToSend: Int64) {}

跟踪上传数据的进度。所以,我想知道是否有任何方法可以为下载活动分配进度视图。

任何建议都会有所帮助。感谢。

1 个答案:

答案 0 :(得分:2)

您应该可以使用委托方法

func URLSession(session: NSURLSession, downloadTask: NSURLSessionDownloadTask, didWriteData bytesWritten: Int64, totalBytesWritten writ: Int64, totalBytesExpectedToWrite exp: Int64)

didSendBodyData

的工作方式非常相似

它不会将下载链接到您的进度视图,但设置progressView.progress = Float(totalBytesWritten) / Float(totalBytesExpectedToWrite)应该很简单 在该委托方法中。