ActivityIndicatorManager 2.1.0

ActivityIndicatorManager 2.1.0

Maintained by Dimitar Petrov, Aleksandar Geyman, Vesela Ilchevska, ivan.georgiev, dimitar.petrov, Kostadin Zamanov.



  • By
  • scalefocus

ActivityIndicatorManager

Swift Version Build Status License CocoaPods Compatible
Platform

AIM provides convenience methods for starting/stopping activity indicators inside of UIViews/UIWindow.

Table of contents

Features

  • Configurable - setup with your desired loading behaviour and layout.
  • Window Loader - start and stop loading indicator over full window with one line of code.
  • Multi-blocker - window loader supports multi-blocker behaviour with number of observers(the loading will not disappear unless all observers have unsubscribed).
  • Minimum Loading Time - window loader supports minimum loading time behaviour with minimum TimeInterval(the loading will not disappear unless the minimum time interval has elapsed).
  • View Loader - start and stop loading indicator within UIViews easily.

Requirements

  • iOS 11.0+
  • Swift 5

Installation

CocoaPods

You can use CocoaPods to install ActivityIndicatorManager by adding it to your Podfile:

platform :ios, '11.0'
use_frameworks!
pod 'ActivityIndicatorManager'

To get the full benefits import ActivityIndicatorManager at the start of the source file:

import ActivityIndicatorManager

Manually

  1. Download and drop ActivityIndicatorManager folder in your project.
  2. Congratulations!

Usage example

Setup with native activity indicator

let nativeActivityIndicatorSetup = AIMNativeTypeModel(style: <#T##UIActivityIndicatorView.Style#>,
                                                      color: <#T##UIColor?#>,
                                                      backgroundColor: <#T##UIColor?#>)

AIMActivityIndicatorManager.setup(withWindow: <#T##UIWindow?#>,
                                  indicatorType: .native(model: nativeActivityIndicatorSetup),
                                  minimumLoadingTimeType: <#T##AIMMinimumLoadingTimeType#>)

Setup with custom activity indicator

To setup with custom activity indicator a custom view with all the logic should be provided. Note that your custom view should conform to AIMActivityIndicatorProtocol

class CustomActivityIndicatorView: UIView, AIMActivityIndicatorProtocol {
    
    // MARK: - ActivityIndicatorProtocol
    func startAnimating() {
        // start custom animation
    }
    
    func stopAnimating() {
        // stop custom animation
    }
}
AIMActivityIndicatorManager.setup(withWindow: <#T##UIWindow?#>,
                                  indicatorType: .custom(customView: CustomActivityIndicatorView()),
                                  minimumLoadingTimeType: <#T##AIMMinimumLoadingTimeType#>)

Window Loader

To start activity indicator in window use:

AIMActivityIndicatorManager.sharedInstance.shouldShowIndicator()

and to stop it, use:

AIMActivityIndicatorManager.sharedInstance.shouldHideIndicator()

If you want to unconditionally stop activity indicator in window, you can:

AIMActivityIndicatorManager.sharedInstance.forceHideIndicator()

View Loader

To start activity indicator in view: UIView use:

AIMActivityIndicatorManager.sharedInstance.startActivityIndicator(in: view)

and to stop it, use:

AIMActivityIndicatorManager.sharedInstance.stopActivityIndicator(in: view)

Meta

Dimitar Petrov – [email protected]

Distributed under the MIT license. See LICENSE for more information.

https://github.com/scalefocus/activity-indicator-manager