Because traditional loading view
like UIActivityIndicatorView
or similar one are no longer so trendy (Facebook or Instagram apps are moving away from these approaches), I decided to create very simple library which will give you oportunity to have Facebook or Instagram 'view loading state' in your great project without big effort π₯! π
You can install library using Cocoapods:
pod 'RHPlaceholder'
or using Carthage:
add
github "robertherdzik/RHPlaceholder"
to your Cartfile and perform carthage update --platform iOS.
WOW... it is soo easy to use π! Base integration with your storyboard VC will take couple minutes π₯
just create instance const of Placeholder
in your ViewController
:
private let placeholderMarker = Placeholder() // By default you will have Insta like gradient animation
bear in mind, that you can choose between couple of predefined animations (like e.g. RainbowAnimatorGradient):
private let placeholderMarker = Placeholder(layerAnimator: RainbowAnimatorGradient.self)
... and then just bind up library with your views which needs to be animated:
private func addPlaceholder() {
let viewElements: [UIView] = [
name,
surname,
age,
email,
birthDate
]
placeholderMarker.register(viewElements)
}
call addPlaceholder()
method in viewDidLoad()
.
Boom π² library has been associated with your views π
all what left, is to controll showing 'loading state' animation on your views using startAnimation()
and remove()
func fetchUserData() {
placeholderMarker.startAnimation()
apiManager.fetchUser() { [weak self] user in
self?.placeholderMarker.remove()
// .. rest of the method
}
}
BackAndForthLayerAnimatorGradient | BlinkAnimator | RainbowAnimatorGradient |
---|---|---|
You can add your own Animators, by conforming to the LayerAnimating
protocol and passing your new Animator as a param to the Placeholder
init.
Library ver | Swift ver | Note |
---|---|---|
0.0.3 | 4.1 | Very early version, API may change |
0.0.5 | 4.2 | Very early version, API may change |
0.0.6 | 5.0 | Very early version, API may change |
Please check out the demo project, you can see there how Library has been implemented in details.
Layout inspiration has been taken from one of the Dribbble projects, unfortunately I cannot find now this project anymore, because of that I cannot annotate creator in here π¦...
- Great π tab bar icons from:
- Cool π profile icon from: