CocoaPods trunk is moving to be read-only. Read more on the blog, there are 14 months to go.
| TestsTested | ✓ | 
| LangLanguage | SwiftSwift | 
| License | MIT | 
| ReleasedLast Release | Dec 2015 | 
| SPMSupports SPM | ✗ | 
Maintained by sgr-ksmt.
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
Clone this repository, then add SUNetworkActivityIndicator.swift to your Xcode Project.