网络指示器 0.1.6

网络指示器 0.1.6

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布上次发布2016年3月
SPM支持SPM

Elvis Nuñez维护。



网络指示器

介绍

网络活动指示器出现在状态栏中,显示正在发生网络活动。网络活动指示器

  • 在网络活动进行时在状态栏中旋转,并在网络活动停止时消失
  • 不允许用户交互

当您的应用访问网络超过几秒钟时,显示网络活动指示器以提供反馈。如果操作完成得更快,您不需要显示网络活动指示器,因为指示器很可能在用户注意到其存在之前消失。

—— iOS 人机界面指南

问题

这是对Apple的networkActivityIndicatorVisible: API的错误的一个很好的介绍

iPhone开发者应使用iPhone状态栏中的小网络活动指示器来通知用户应用程序访问网络。显示或隐藏指示器很简单

UIApplication.sharedApplication().networkActivityIndicatorVisible = true

大多数可能从他们的视图控制器中调用这个方法。这没问题,直到你必须处理多个并发任务,这些任务访问网络,以及或多个活跃的视图控制器。例如,你可能正在后台运行一个HTTP请求下载来自webservice的数据,并且使用一个MKMapView实例,当用户移动地图到新位置时它将访问网络。

在这些情况下,如果你直接从这些方法中访问networkActivityIndicatorVisible属性,很可能在第一个任务完成后隐藏了指示器,尽管你的应用程序仍在访问网络。你需要实现一个计数器来记住网络活动指示器显示和隐藏的次数,以便正确管理它。如果你的代码分散在多个视图控制器中,这将变得更加繁琐。

尽管这个“问题”仅仅是可用性的一个小方面,但解决方案非常简单且优雅,我认为即使你的应用程序中没有处理多个并发网络活动任务,这也值得去做。

—— Ole Begemann,管理网络活动指示器

演示

使用方法

显示网络活动指示器

NetworkActivityIndicator.sharedIndicator.visible = true

隐藏网络活动指示器

NetworkActivityIndicator.sharedIndicator.visible = false

平衡网络活动指示器

NetworkActivityIndicator.sharedIndicator.visible = true
// Network activity indicator starts showing, activity count = 1

NetworkActivityIndicator.sharedIndicator.visible = true
NetworkActivityIndicator.sharedIndicator.visible = true
// Activity count = 3

NetworkActivityIndicator.sharedIndicator.visible = false
// Network activity indicator still showing, activity count = 2

NetworkActivityIndicator.sharedIndicator.visible = false
NetworkActivityIndicator.sharedIndicator.visible = false
// Network activity indicator hides, activity count = 0

安装

NetworkActivityIndicator可通过CocoaPods获取。要安装它,只需将以下行添加到你的Podfile文件中:

pod 'NetworkActivityIndicator'

许可证

NetworkActivityIndicator采用MIT许可证。有关更多信息,请参阅LICENSE文件。

作者

Elvis Nuñez,@3lvis