项目介绍:
STLoadingGroup
A Group of Loading Animations.
ScreenShot
Usage
let loadingGroup = let loadingGroup = STLoadingGroup(side: side, style: style)
loadingGroup.show(inView: view)
loadingGroup.startLoading()
// stop: loadnigGroup.stopLoading()
Custom
If you want to add your own loading:
1.Comfirm STLoadingable
and STLoadingConfigable
protocol and implement required functions (there is a isLoading
property left)
protocol STLoadingable {
var isLoading: Bool { get }
func startLoading()
func stopLoading()
}
protocol STLoadingConfig {
var animationDuration: TimeInterval { get }
var lineWidth: CGFloat { get }
var loadingTintColor: UIColor { get }
}
2.Append your loading style to STLoadingStyle
in STLoadingGroup.swift
file
enum STLoadingStyle: String {
case submit = "submit"
case glasses = "glasses"
case walk = "walk"
case arch = "arch"
case bouncyPreloader = "bouncyPreloader"
case zhihu = "zhihu"
}
3.Add initializer for your loading: case .yourStyle:
in STLoadingGroup
class STLoadingGroup {
fileprivate let loadingView: STLoadingable
init(side: CGFloat, style: STLoadingStyle) {
let bounds = CGRect(origin: .zero, size: CGSize(width: side, height: side))
switch style {
case .submit:
loadingView = STSubmitLoading(frame: bounds)
case .glasses:
loadingView = STGlassesLoading(frame: bounds)
case .walk:
loadingView = STWalkLoading(frame: bounds)
case .arch:
loadingView = STArchLoading(frame: bounds)
case .bouncyPreloader:
loadingView = STBouncyPreloaderLoading(frame: bounds)
case .zhihu:
loadingView = STZhiHuLoading(frame: bounds)
// insert your code here
}
}
}
Thanks
.glasses
Designed by : bingbing. Dribbble link : click me !
.walk
Designed by : sandeep virk. Dribbble link : click me !
.arch
Designed by : John LaPrime. Dribbble link : click me !
.bouncyPreloader
Designed by : Joash Berkeley. Dribbble link : click me !
.submit
Loading animation in submit button.
.zhiHu
Designed by : ZhiHu daily.
https://github.com/saitjr/STLoadingGroup