如何在 swift 中实现类似 Dropbox 的进度视图?

Posted

技术标签:

【中文标题】如何在 swift 中实现类似 Dropbox 的进度视图?【英文标题】:How do I achieve this Dropbox like progress view in swift? 【发布时间】:2015-09-11 05:46:54 【问题描述】:

Dropbox ios 应用有一种非常酷的视图层次结构,当从它们的“文件”tableView 中选择一行时,它会进入一个显示所选文件加载进度的视图,然后该视图过渡到阅读/查看文件的 PDF 阅读器。

video in this link 正是我的意思。它就像进度视图转换到 PDF 视图而不是继续它,因为正如您从视频中看到的那样,当您从 PDF 阅读器按下后退导航项时,它会直接返回到 tableView,而不是进度屏幕。他们是如何获得这种效果的?我将如何自己实现它?

【问题讨论】:

似乎他们从表格视图进入 PDF 阅读器视图的进度视图。然后当点击返回时,您会展开到表格视图,从而跳过进度视图。 好吧,我的 IB 上有相同的设置,主视图 -> 进度视图 -> pdf 阅读器视图。从 pdf 阅读器视图返回时,我将如何展开进度视图? @RuudKalis 【参考方案1】:

三个控制器(主视图 -> 进度视图 -> pdf 阅读器)可能 ...您需要拦截后退按钮上的点击,而不是后退一步 (到进度视图)你想要后退两个控制器。

但你会一直与 iOS 作斗争,让自己头疼。

Dropbox 可能有两个控制器 master view -> detail view 并遵循如下逻辑:

viewWillAppear 的详细视图,他们可能设置了占据整个屏幕宽度和高度的进度视图。

viewDidLoad 的详细视图启动进度视图的动画。

开始下载 PDF 文件并在下载完成后更新进度指示器。

完全下载后将其添加到视图中(但在进度指示器下方)

然后隐藏进度视图以在下方显示 PDF 视图。

希望能给你一些关于如何创建这种效果的想法。

【讨论】:

以上是关于如何在 swift 中实现类似 Dropbox 的进度视图?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS(Swift 或 Objective C)中实现这样的套接字调用?

如何在 Swift 中实现单例类

这是如何在 swift 4 中实现的?

如何在 inputAccessoryView [Swift] 中实现滚动视图

如何在 UITableView 的索引列表中实现放大镜? [关闭]

mailcore2如何在swift中实现它