Xcode 显示加载视图,直到第二个视图加载(在 segue 节目中)

Posted

技术标签:

【中文标题】Xcode 显示加载视图,直到第二个视图加载(在 segue 节目中)【英文标题】:Xcode Display a loading view until the second view loads (on a segue show) 【发布时间】:2016-06-13 16:43:09 【问题描述】:

我有一个应用程序在单击按钮时使用 segue 切换视图。 第二个视图从互联网加载数据,可能需要几秒钟。 我想知道如何同时显示加载视图/启动画面,以便视图可以完成加载,并且应用程序不会看起来像什么都不做。 谢谢!

【问题讨论】:

【参考方案1】:

检查这个库SwiftSpinner。它满足您的需求。真是太棒了。

在您的ViewControllerviewDidLoad 方法中从库中调用必要的函数,该方法从互联网加载数据。在NSURLProtocolDidFinishLoading 方法中删除此视图(这是在该类中声明的可选函数,用于检测对该URL 的请求何时完成)。该库本身提供了文档。

【讨论】:

谢谢,这成功了【参考方案2】:

听起来您正在寻找活动指示器。我已经成功使用了https://***.com/a/32661590/3516923 发布的自定义类。只是一个警告,在他的课堂上,当指示器处于视野中时,他会阻止所有输入。如果您想这样做,以便您的用户可以在事情完成之前退出,您需要从开始和停止动画功能中删除 UIApplication.sharedApplication().beginIgnoringInteractionEvents()UIApplication.sharedApplication().endIgnoringInteractionEvents()

【讨论】:

【参考方案3】:

如果您真正想要的是一个初始屏幕,请在您正在加载的视图下方放置一个 UIImageView。将图像设置为初始屏幕图像。在显示之前将加载视图设置为 hidden=YES,然后在完成加载后将 hidden 设置为 NO。你甚至可以设置最前面的视图的不透明度来给你一个淡入淡出的效果。

【讨论】:

【参考方案4】:

1.你需要找到一种指示器,像一个活动指示器或其他东西来向用户显示正在加载的 UI。 2.设置用户交互不可用,让用户不会在里面反复补漆。 3.启动指示器,加载服务器数据时设置用户交互不能,完成后停止指示器动画,隐藏指示器,启用用户交互。

【讨论】:

以上是关于Xcode 显示加载视图,直到第二个视图加载(在 segue 节目中)的主要内容,如果未能解决你的问题,请参考以下文章

Xcode Webview 输出“空”

使用 Swift 以编程方式插入按钮并加载第二个视图

将数据移动到另一个视图控制器,但第二个视图控制器在第一个视图控制器之前加载

在启动时加载并呈现第二个视图控制器

使用两个视图控制器,第二个不会显示视图

在 Xcode 5 中使用 NSUserDefaults 保存第二个打开的视图