ActivityIndicatorManager
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 ActivityIndicatorManagerManually
- Download and drop
ActivityIndicatorManagerfolder in your project. - 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.