Popularity
5.7
Stable
Activity
0.0
Stable
537
18
84

Programming language: Swift
License: MIT License
Tags: UI     ProgressView    
Latest version: v3.13.0

GradientCircularProgress alternatives and similar libraries

Based on the "ProgressView" category.
Alternatively, view GradientCircularProgress alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of GradientCircularProgress or a related project?

Add another 'ProgressView' Library

README

Gradient Circular Progress

Customizable progress indicator library in Swift

Requirements

  • Swift 5.1
  • iOS 8.0 or later

Screen Shots

[](images/scr_BlueDarkStyle_01.png) [](images/scr_BlueDarkStyle_02.png)

  • All preset styles

[](images/styles_01.png) [](images/styles_02.png)

  • Example Use AddSubView

[](images/scr_AddSubViewEx_01.png) [](images/scr_AddSubViewEx_02.png)

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

[](images/properties.png)

  • 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() {}
}

[](images/scr_MyStyle.png)

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


*Note that all licence references and agreements mentioned in the GradientCircularProgress README section above are relevant to that project's source code only.