Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

keygx/GradientCircularProgress

Repository files navigation

Gradient Circular Progress

Customizable progress indicator library in Swift

Requirements

  • Swift 5.1
  • iOS 8.0 or later

Screen Shots

  • All preset styles

  • Example Use AddSubView

Installation

Carthage

github "keygx/GradientCircularProgress"

CocoaPods

pod 'GradientCircularProgress', :git => 'https://github.com/keygx/GradientCircularProgress'

Swift versions support

  • Swift 5.1, tag "swift5.1"
  • Swift 5, tag "swift5"
  • Swift 4.2, tag "swift4.2"
  • Swift 4.1, tag "swift4.1"
  • Swift 4.0, tag "swift4.0"

Style Settings

Please make your original styles

  • Define custom style structs that implements the StyleProperty Protocol

MyStyle.swift

import GradientCircularProgress
public struct MyStyle : StyleProperty {
 /*** style properties **********************************************************************************/
 
 // Progress Size
 public var progressSize: CGFloat = 200
 
 // Gradient Circular
 public var arcLineWidth: CGFloat = 18.0
 public var startArcColor: UIColor = UIColor.clear()
 public var endArcColor: UIColor = UIColor.orange()
 
 // Base Circular
 public var baseLineWidth: CGFloat? = 19.0
 public var baseArcColor: UIColor? = UIColor.darkGray()
 
 // Ratio
 public var ratioLabelFont: UIFont? = UIFont(name: "Verdana-Bold", size: 16.0)
 public var ratioLabelFontColor: UIColor? = UIColor.white()
 
 // Message
 public var messageLabelFont: UIFont? = UIFont.systemFont(ofSize: 16.0)
 public var messageLabelFontColor: UIColor? = UIColor.white()
 
 // Background
 public var backgroundStyle: BackgroundStyles = .dark
 
 // Dismiss
 public var dismissTimeInterval: Double? = 0.0 // 'nil' for default setting.
 
 /*** style properties **********************************************************************************/
 
 public init() {}
}

Usage

import GradientCircularProgress

Basic

UIWindow

let progress = GradientCircularProgress()
progress.show(message: "Loading...", MyStyle())
progress.dismiss()

addSubView

let progress = GradientCircularProgress()
let progressView = progress.show(frame: rect, message: "Loading...", style: MyStyle())
view.addSubview(progressView!)
progress.dismiss(progress: progressView!)

at Rtio

UIWindow

let progress = GradientCircularProgress()
let ratio: CGFloat = CGFloat(totalBytesWritten) / CGFloat(totalBytesExpectedToWrite) 
progress.showAtRatio(style: MyStyle())
progress.updateRatio(ratio)
progress.dismiss()

addSubView

let progress = GradientCircularProgress()
let progressView = progress.showAtRatio(frame: rect, display: true, style: MyStyle())
view.addSubview(progressView!)
progress.updateRatio(ratio)
progress.dismiss(progress: progressView!)

Update Message

UIWindow

let progress = GradientCircularProgress()
progress.show(message: "Download\n0 / 4", MyStyle())
progress.updateMessage(message: "Download\n1 / 4")
progress.updateMessage(message: "Download\n2 / 4")
progress.updateMessage(message: "Download\n3 / 4")
progress.updateMessage(message: "Download\n4 / 4")
progress.updateMessage(message: "Completed!")
progress.dismiss()

addSubView

let progress = GradientCircularProgress()
let progressView = progress.show(frame: rect, message: "Download\n0 / 4", style: MyStyle())
view.addSubview(progressView!)
progress.updateMessage(message: "Download\n1 / 4")
progress.updateMessage(message: "Download\n2 / 4")
progress.updateMessage(message: "Download\n3 / 4")
progress.updateMessage(message: "Download\n4 / 4")
progress.updateMessage(message: "Completed!")
progress.dismiss(progress: progressView!)

API

Use UIWindow

public func showAtRatio(display: Bool = true, style: StyleProperty = Style())
public func show(style: StyleProperty = Style())
public func show(message: String, style: StyleProperty = Style())
public func dismiss()
public func dismiss(_ completionHandler: () -> Void) -> ()

Use addSubView

public func showAtRatio(frame: CGRect, display: Bool = true, style: StyleProperty = Style()) -> UIView?
public func show(frame: CGRect, style: StyleProperty = Style()) -> UIView?
public func show(frame: CGRect, message: String, style: StyleProperty = Style()) -> UIView?
public func dismiss(progress view: UIView)
public func dismiss(progress view: UIView, completionHandler: () -> Void) -> ()

Common

public func updateMessage(message message: String)
public func updateRatio(_ ratio: CGFloat)

License

Gradient Circular Progress is released under the MIT license. See LICENSE for details.

Author

Yukihiko Kagiyama (keygx) https://twitter.com/keygx

About

Customizable progress indicator library in Swift

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

Languages

AltStyle によって変換されたページ (->オリジナル) /