iOS 网络活动指示器未显示

Posted

技术标签:

【中文标题】iOS 网络活动指示器未显示【英文标题】:iOS network activity indicator is not showing 【发布时间】:2016-05-02 09:22:58 【问题描述】:

我正在使用 Alamofire 网络库来发出请求。

我正在执行几个不同的任务,例如。

下载文件 上传文件 发布请求

但是任何操作的状态栏中都没有显示网络活动指示器。

这种行为的可能原因是什么?

这值得担心吗?

【问题讨论】:

【参考方案1】:

您必须手动打开/关闭网络指示器,这不是默认行为。这是你的做法

[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];

Swift 代码

UIApplication.shared.isNetworkActivityIndicatorVisible = true

【讨论】:

【参考方案2】:

由于您使用的是 Alamofire,因此您应该使用配套库:https://github.com/Alamofire/AlamofireNetworkActivityIndicator

从他们的自述文件中,您需要做的就是 NetworkActivityIndicatorManager.sharedManager.isEnabled = true

【讨论】:

为这么小的行为添加一个完整的依赖项不是太多了吗? 这由你来决定我猜,有些人不会使用 alamofire,因为 NSURLSession 相当简单。对于这种情况,如果您已经在使用 AF,则此依赖项仅是 1 个额外文件,我个人不会认为这是一个大问题【参考方案3】:

Swift 3.0 兼容代码:

UIApplication.shared.isNetworkActivityIndicatorVisible = true

【讨论】:

【参考方案4】:

我做了wattson12 answers 要求我做的事情但是没有用

您还需要添加以下行,因为指标的默认启动延迟为 1。

NetworkActivityIndicatorManager.shared.startDelay = 0

如果您查询的内容非常简单,并且在 1 秒内返回响应,那么它甚至不会显示。

【讨论】:

【参考方案5】:

您应该手动显示网络活动指示器,例如,

  UIApplication.sharedApplication().networkActivityIndicatorVisible = true

false 想要隐藏时。默认不显示。

希望这会有所帮助:)

【讨论】:

以上是关于iOS 网络活动指示器未显示的主要内容,如果未能解决你的问题,请参考以下文章

Alamofire 网络活动指示器未显示

活动指示器未显示在视图前面

PDF uiwebview 加载时未显示活动指示器

带有 Jetpack Navigation 的 BottomNavigationView 未正确显示活动菜单指示器

如何使用Swift在iOS 8上显示带有文本的活动指示器?

PhoneGap 2.7 在状态栏中显示活动指示器