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
UIView
s 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
- Download and drop
ActivityIndicatorManager
folder 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.