STLoadingGroup
A Group of Loading Animations.
ScreenShotUsagelet loadingGroup = let loadingGroup = STLoadingGroup(side: side, style: style) loadingGroup.show(inView: view) loadingGroup.startLoading() // stop: loadnigGroup.stopLoading()CustomIf 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.glassesDesigned by : bingbing. Dribbble link : click me !
.walkDesigned by : sandeep virk. Dribbble link : click me !
.archDesigned by : John LaPrime. Dribbble link : click me !
.bouncyPreloaderDesigned by : Joash Berkeley. Dribbble link : click me !
.submitLoading animation in submit button.
.zhiHuDesigned by : ZhiHu daily.
https://github.com/saitjr/STLoadingGroup
,论文,开题报告