如何从头开始创建iTunes Samples Player? (第3部分)

注意:这是“如何从头开始创建iTunes Samples Player? (第2部分)”。

本文分为两个部分:

  1. 在ProgressView和标签文本中显示下载进度。
  2. 实现暂停,恢复和取消下载。

上一篇文章的最后一步是添加URLSession的委托方法。 URLSession中还有另一个委托方法,可提供进度的确切状态。 我们可以利用此委托获取当前的进度信息,并在TrackCell中使用新方法,更新标签和进度视图。

TrackCell中进行了一些更改。 删除了隐藏进度标签和progressView的行。 将进度视图的进度值设置为零。 下载完成后,我们将隐藏进度视图。 另外,在Main.storyboard中,删除进度标签上的默认文本“ Label”。 请注意,在底部添加了新方法updateDisplay。

生成,运行并点击下载。 在下载过程中和下载之后,您应该看到以下屏幕。

到此完成第1节

解决方案 :URLSession支持暂停/恢复和取消。 我们已经在单元格上隐藏了按钮。 当用户点击它们时,某些委托方法应触发。 这些方法应由SearchViewcontroller处理。 暂停,恢复或取消之类的操作应直接应用于活动下载。

为了进行这些更改,我们需要在T​​rackCell上声明三个新的委托方法。 然后,我们需要将按钮操作连接到IBAction方法,该方法将依次调用委托,在这种情况下为SearchViewController。 我们还在单元格行上进行了一些UI调整,以便与下载相关的控件仅在活动下载时出现。 完成的课程如下所示:

我们已经更改了Configure方法TrackCell的签名,以便传递活动的下载对象。 更改“ SearchViewController + TableViewDelegate”内部的方法调用以通过活动下载。

cell.configure(跟踪:跟踪,下载:跟踪。下载,下载:downloadService.activeDownloads [track.previewURL])

生成,运行,搜索,下载,暂停,恢复,取消。

该版本的源代码在GitHub中可用。

希望您能够成功看到具有预期功能的上述屏幕。 这标志着我们为本文设定的所有目标的完成。

学习愉快!