- Easy active/inactive
- Multiple management of indicator's state
before :
// usual usage
UIApplication.sharedApplication().networkActivityIndicatorVisible = true
UIApplication.sharedApplication().networkActivityIndicatorVisible = false
class SomeClass {
var connectionCount: Int
init() {
connectionCount = 0
}
func getData() {
doConnection1()
doConnection2()
}
func doConnection1() {
UIApplication.sharedApplication().networkActivityIndicatorVisible = true
connectionCount += 1
// some async connection
}
func endConnection1() {
if connectionCount == 0 {
UIApplication.sharedApplication().networkActivityIndicatorVisible = false
}
}
func doConnection2() {
UIApplication.sharedApplication().networkActivityIndicatorVisible = true
connectionCount += 1
// some async connection
}
func endConnection2() {
if connectionCount == 0 {
UIApplication.sharedApplication().networkActivityIndicatorVisible = false
}
}
}
after
// usual usage
NetworkActivityIndicator.shared().start()
NetworkActivityIndicator.shared().end()
class SomeClass {
init() {
}
func getData() {
doConnection1()
doConnection2()
}
func doConnection1() {
NetworkActivityIndicator.shared().start()
// some async connection
}
func endConnection1() {
NetworkActivityIndicator.shared().end()
// if `activeCount` is above 0, remain indicator visible.
}
func doConnection2() {
NetworkActivityIndicator.shared().start()
// some async connection
}
func endConnection2() {
NetworkActivityIndicator.shared().end()
// if `activeCount` is above 0, remain indicator visible.
}
}
Example is here
- iOS 8.0+
- Xcode 7.0+(Swift 2+)
SUNetworkActivityIndicator is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'SUNetworkActivityIndicator'
and run pod install
- Add the following to your Cartfile:
github "sgr-ksmt/SUNetworkActivityIndicator"
- Run
carthage update
- Add the framework as described.
Details: Carthage Readme
Clone this repository, then add SUNetworkActivityIndicator.swift
to your Xcode Project.