From 6a4f3eb613dd4698ef59eb97e7c19ea27b5032a5 Mon Sep 17 00:00:00 2001 From: Luis Date: Fri, 22 Feb 2019 14:10:25 -0500 Subject: [PATCH 1/5] add type to value formatter of UICiruclarProgressRing --- src/UICircularProgressRing/UICircularProgressRing.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/UICircularProgressRing/UICircularProgressRing.swift b/src/UICircularProgressRing/UICircularProgressRing.swift index f3916dd6..ffd9273b 100644 --- a/src/UICircularProgressRing/UICircularProgressRing.swift +++ b/src/UICircularProgressRing/UICircularProgressRing.swift @@ -159,7 +159,7 @@ final public class UICircularProgressRing: UICircularRing { ## Author Luis Padron */ - public var valueFormatter = UICircularProgressRingFormatter() { + public var valueFormatter: UICircularRingValueFormatter = UICircularProgressRingFormatter() { didSet { ringLayer.valueFormatter = valueFormatter } } From 1608aa9c6ae86fa220bf81f218daf2ad389e57ae Mon Sep 17 00:00:00 2001 From: Luis Date: Fri, 22 Feb 2019 14:33:11 -0500 Subject: [PATCH 2/5] rewrite code for formatter --- .../project.pbxproj | 4 ++ .../UICircularRingLayer.swift | 4 +- .../UICircularRingValueFormatter.swift | 44 ++++++------------- .../UICircularProgressRingTests.swift | 11 ++--- .../ValueFormatterTests.swift | 27 ++++++++++++ 5 files changed, 53 insertions(+), 37 deletions(-) create mode 100644 src/UICircularProgressRingTests/ValueFormatterTests.swift diff --git a/src/UICircularProgressRing.xcodeproj/project.pbxproj b/src/UICircularProgressRing.xcodeproj/project.pbxproj index d3053b10..51a383ef 100644 --- a/src/UICircularProgressRing.xcodeproj/project.pbxproj +++ b/src/UICircularProgressRing.xcodeproj/project.pbxproj @@ -12,6 +12,7 @@ A024AE91220A37C600D3DE5D /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = A024AE90220A37C600D3DE5D /* Extensions.swift */; }; A024AE93220A395200D3DE5D /* UICircularTimerRing.swift in Sources */ = {isa = PBXBuildFile; fileRef = A024AE92220A395200D3DE5D /* UICircularTimerRing.swift */; }; A034CFFD220D53D5007273AA /* UICircularTimerRingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A034CFFC220D53D5007273AA /* UICircularTimerRingTests.swift */; }; + A05250D92220854F007E8573 /* ValueFormatterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A05250D82220854F007E8573 /* ValueFormatterTests.swift */; }; A05EDE10220A15FD006FCF1E /* UICircularProgressRing.swift in Sources */ = {isa = PBXBuildFile; fileRef = A05EDE0F220A15FD006FCF1E /* UICircularProgressRing.swift */; }; A0801C1720E3185D009DC236 /* UICircularRing.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0801C1620E3185D009DC236 /* UICircularRing.swift */; }; A0A9E37C220CE33F00EB0861 /* UICircularRingValueFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0A9E37B220CE33F00EB0861 /* UICircularRingValueFormatter.swift */; }; @@ -38,6 +39,7 @@ A024AE90220A37C600D3DE5D /* Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Extensions.swift; sourceTree = ""; }; A024AE92220A395200D3DE5D /* UICircularTimerRing.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UICircularTimerRing.swift; sourceTree = ""; }; A034CFFC220D53D5007273AA /* UICircularTimerRingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UICircularTimerRingTests.swift; sourceTree = ""; }; + A05250D82220854F007E8573 /* ValueFormatterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ValueFormatterTests.swift; sourceTree = ""; }; A05EDE0F220A15FD006FCF1E /* UICircularProgressRing.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UICircularProgressRing.swift; sourceTree = ""; }; A0801C1620E3185D009DC236 /* UICircularRing.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UICircularRing.swift; sourceTree = ""; }; A0A9E37B220CE33F00EB0861 /* UICircularRingValueFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UICircularRingValueFormatter.swift; sourceTree = ""; }; @@ -112,6 +114,7 @@ A0C6DE8A1D88CBE2008AE742 /* UICircularProgressRingTests.swift */, A034CFFC220D53D5007273AA /* UICircularTimerRingTests.swift */, A0C6DE8C1D88CBE2008AE742 /* Info.plist */, + A05250D82220854F007E8573 /* ValueFormatterTests.swift */, ); path = UICircularProgressRingTests; sourceTree = ""; @@ -262,6 +265,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + A05250D92220854F007E8573 /* ValueFormatterTests.swift in Sources */, A034CFFD220D53D5007273AA /* UICircularTimerRingTests.swift in Sources */, AB8F17E5212522C100CFB95E /* UICircularProgressRingPauseResetTests.swift in Sources */, A0C6DE8B1D88CBE2008AE742 /* UICircularProgressRingTests.swift in Sources */, diff --git a/src/UICircularProgressRing/UICircularRingLayer.swift b/src/UICircularProgressRing/UICircularRingLayer.swift index 0b07c5b5..30172fe1 100644 --- a/src/UICircularProgressRing/UICircularRingLayer.swift +++ b/src/UICircularProgressRing/UICircularRingLayer.swift @@ -44,7 +44,7 @@ class UICircularRingLayer: CAShapeLayer { @NSManaged weak var ring: UICircularRing! /// formatter for the text of the value label - @NSManaged var valueFormatter: UICircularRingValueFormatter? + var valueFormatter: UICircularRingValueFormatter? /// the style for the value knob var valueKnobStyle: UICircularRingValueKnobStyle? @@ -366,7 +366,7 @@ class UICircularRingLayer: CAShapeLayer { valueLabel.font = ring.font valueLabel.textAlignment = .center valueLabel.textColor = ring.fontColor - valueLabel.text = valueFormatter?.string(forValue: value) + valueLabel.text = valueFormatter?.string(for: value) ring.willDisplayLabel(label: valueLabel) valueLabel.sizeToFit() diff --git a/src/UICircularProgressRing/UICircularRingValueFormatter.swift b/src/UICircularProgressRing/UICircularRingValueFormatter.swift index 4f834eba..d2d5f342 100644 --- a/src/UICircularProgressRing/UICircularRingValueFormatter.swift +++ b/src/UICircularProgressRing/UICircularRingValueFormatter.swift @@ -11,33 +11,14 @@ import Foundation // MARK: UICircularRingValueFormatter /** - UICricularRingValueFormatter + UICircularRingValueFormatter - The base class for all the UICircularRing formatters. - Subclasses should implement `string(forValue:)` as this is used - to format the value into a string in the base class + Any custom formatter must conform to this protocol. - Two concrete implementations are provided, refer to `UICircularTimerRingFormatter` - and `UICircularProgressRingFormatter` */ -open class UICircularRingValueFormatter: Formatter { - /// returns result of `string(forValue:)` - open override func string(for obj: Any?) -> String? { - guard let value = obj as? CGFloat else { return nil } - return string(forValue: value) - } - - /// always returns false - open override func getObjectValue(_ obj: AutoreleasingUnsafeMutablePointer?, - for string: String, - errorDescription error: AutoreleasingUnsafeMutablePointer?) -> Bool { - return false - } - - /// not implemented - open func string(forValue value: CGFloat) -> String? { - fatalError("UICircularRingValueFormatter: string(forValue:) should be implemented when subclassing") - } +public protocol UICircularRingValueFormatter { + /// returns a string for the given object + func string(for value: Any) -> String? } // MARK: UICircularTimerRingFormatter @@ -48,7 +29,7 @@ open class UICircularRingValueFormatter: Formatter { The formatter used in UICircularTimerRing class, formats the ring value into a time string. */ -final public class UICircularTimerRingFormatter: UICircularRingValueFormatter { +public struct UICircularTimerRingFormatter: UICircularRingValueFormatter { // MARK: Members /// defines the units allowed to be used when converting string, by default `[.minute, .second]` @@ -62,17 +43,18 @@ final public class UICircularTimerRingFormatter: UICircularRingValueFormatter { } /// formatter which formats the time string of the ring label - private lazy var formatter: DateComponentsFormatter = { + private var formatter: DateComponentsFormatter { let formatter = DateComponentsFormatter() formatter.allowedUnits = units formatter.unitsStyle = style return formatter - }() + } // MARK: API /// formats the value of the ring using the date components formatter with given units/style - public override func string(forValue value: CGFloat) -> String? { + public func string(for value: Any) -> String? { + guard let value = value as? CGFloat else { return nil } return formatter.string(from: value.interval) } } @@ -85,7 +67,7 @@ final public class UICircularTimerRingFormatter: UICircularRingValueFormatter { The formatter used in UICircularProgressRing class, responsible for formatting the value of the ring into a readable string */ -final public class UICircularProgressRingFormatter: UICircularRingValueFormatter { +public struct UICircularProgressRingFormatter: UICircularRingValueFormatter { // MARK: Members @@ -142,7 +124,9 @@ final public class UICircularProgressRingFormatter: UICircularRingValueFormatter public var decimalPlaces: Int = 2 /// formats the value of the progress ring using the given properties - public override func string(forValue value: CGFloat) -> String? { + public func string(for value: Any) -> String? { + guard let value = value as? CGFloat else { return nil } + if rightToLeft { if showFloatingPoint { return "\(valueIndicator)" + String(format: "%.\(decimalPlaces)f", value) diff --git a/src/UICircularProgressRingTests/UICircularProgressRingTests.swift b/src/UICircularProgressRingTests/UICircularProgressRingTests.swift index b60c56ad..28a0fabd 100644 --- a/src/UICircularProgressRingTests/UICircularProgressRingTests.swift +++ b/src/UICircularProgressRingTests/UICircularProgressRingTests.swift @@ -67,14 +67,15 @@ class UICircularProgressRingTests: XCTestCase { XCTAssertEqual(progressRing.maxValue, 200) XCTAssertEqual(progressRing.ringLayer.maxValue, 200) + var formatter = UICircularProgressRingFormatter() + formatter.valueIndicator = " GB" + formatter.showFloatingPoint = true + formatter.decimalPlaces = 1 + progressRing.valueFormatter = formatter + let layerFormatter = progressRing.ringLayer.valueFormatter as! UICircularProgressRingFormatter - progressRing.valueFormatter.valueIndicator = " GB" XCTAssertEqual(layerFormatter.valueIndicator, " GB") - - progressRing.valueFormatter.showFloatingPoint = true XCTAssertEqual(layerFormatter.showFloatingPoint, true) - - progressRing.valueFormatter.decimalPlaces = 1 XCTAssertEqual(layerFormatter.decimalPlaces, 1) progressRing.animationTimingFunction = .linear diff --git a/src/UICircularProgressRingTests/ValueFormatterTests.swift b/src/UICircularProgressRingTests/ValueFormatterTests.swift new file mode 100644 index 00000000..f21ebeb4 --- /dev/null +++ b/src/UICircularProgressRingTests/ValueFormatterTests.swift @@ -0,0 +1,27 @@ +// +// ValueFormatterTests.swift +// UICircularProgressRingTests +// +// Created by Luis on 2/22/19. +// Copyright © 2019 Luis Padron. All rights reserved. +// + +import XCTest +@testable import UICircularProgressRing + +final class ValueFormatterTests: XCTestCase { + + struct LameFormatter: UICircularRingValueFormatter { + func string(for value: Any) -> String? { + guard let value = value as? CGFloat else { return nil } + return "Lame \(value)" + } + } + + func testCustomFormatter() { + let formatter = LameFormatter() + XCTAssertEqual(formatter.string(for: CGFloat(69.420))!, "Lame 69.42") + XCTAssertNil(formatter.string(for: "Wow this should fail!")) + } + +} From f5015a1084360f89b7d0b9a7f3681a9b44a68bbb Mon Sep 17 00:00:00 2001 From: Luis Date: Fri, 22 Feb 2019 14:38:47 -0500 Subject: [PATCH 3/5] fix api bug which did not allow setting gradient style with other styles --- src/UICircularProgressRing/UICircularRing.swift | 12 ++++++++++++ .../UICircularRingLayer.swift | 12 ++++++------ .../UICircularRingStyle.swift | 13 +++++-------- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/src/UICircularProgressRing/UICircularRing.swift b/src/UICircularProgressRing/UICircularRing.swift index b152e85c..a6309268 100644 --- a/src/UICircularProgressRing/UICircularRing.swift +++ b/src/UICircularProgressRing/UICircularRing.swift @@ -85,6 +85,18 @@ import UIKit didSet { ringLayer.setNeedsDisplay() } } + /** + The options for a gradient ring. + + If this is non-`nil` then a gradient style will be applied. + + ## Important ## + Default = `nil` + */ + open var gradientOptions: UICircularRingGradientOptions? = nil { + didSet { ringLayer.setNeedsDisplay() } + } + /** A toggle for showing or hiding the value label. If false the current value will not be shown. diff --git a/src/UICircularProgressRing/UICircularRingLayer.swift b/src/UICircularProgressRing/UICircularRingLayer.swift index 30172fe1..7d2b39bd 100644 --- a/src/UICircularProgressRing/UICircularRingLayer.swift +++ b/src/UICircularProgressRing/UICircularRingLayer.swift @@ -197,16 +197,16 @@ class UICircularRingLayer: CAShapeLayer { ctx.addPath(innerPath.cgPath) ctx.drawPath(using: .stroke) - if case let UICircularRingStyle.gradient(options) = ring.style { + if let gradientOptions = ring.gradientOptions { // Create gradient and draw it var cgColors: [CGColor] = [CGColor]() - for color: UIColor in options.colors { + for color: UIColor in gradientOptions.colors { cgColors.append(color.cgColor) } guard let gradient: CGGradient = CGGradient(colorsSpace: nil, colors: cgColors as CFArray, - locations: options.colorLocations) + locations: gradientOptions.colorLocations) else { fatalError("\nUnable to create gradient for progress ring.\n" + "Check values of gradientColors and gradientLocations.\n") @@ -218,8 +218,8 @@ class UICircularRingLayer: CAShapeLayer { ctx.clip() drawGradient(gradient, - start: options.startPosition, - end: options.endPosition, + start: gradientOptions.startPosition, + end: gradientOptions.endPosition, in: ctx) ctx.restoreGState() @@ -302,7 +302,7 @@ class UICircularRingLayer: CAShapeLayer { let knobSize = ring.valueKnobStyle?.size ?? 0 switch ring.style { - case .inside, .gradient: + case .inside: let difference = ring.outerRingWidth * 2 + ring.innerRingSpacing + knobSize / 2 let offSet = ring.innerRingWidth / 2 + knobSize / 2 radiusIn = (min(bounds.width - difference, bounds.height - difference) / 2) - offSet diff --git a/src/UICircularProgressRing/UICircularRingStyle.swift b/src/UICircularProgressRing/UICircularRingStyle.swift index 6c47fea4..268eaf5a 100644 --- a/src/UICircularProgressRing/UICircularRingStyle.swift +++ b/src/UICircularProgressRing/UICircularRingStyle.swift @@ -50,9 +50,6 @@ public enum UICircularRingStyle { /// outer ring is dotted case dotted - /// inner ring is placed ontop of the outer ring and it has a gradient, look at `UICircularGradientOptions` - case gradient(options: UICircularGradientOptions) - /// inner ring is placed ontop of the outer ring and outer ring has border case bordered(width: CGFloat, color: UIColor) } @@ -157,20 +154,20 @@ public enum UICircularRingGradientPosition { } } -// MARK: UICircularGradientOptions +// MARK: UICircularRingGradientOptions /** - UICircularGradientOptions + UICircularRingGradientOptions Struct for defining the options for the UICircularRingStyle.gradient case. ## Important ## Make sure the number of `colors` is equal to the number of `colorLocations` */ -public struct UICircularGradientOptions { +public struct UICircularRingGradientOptions { /// a default styling option for the gradient style - public static let `default` = UICircularGradientOptions(startPosition: .topRight, + public static let `default` = UICircularRingGradientOptions(startPosition: .topRight, endPosition: .bottomLeft, colors: [.red, .blue], colorLocations: [0, 1]) @@ -187,7 +184,7 @@ public struct UICircularGradientOptions { /// the locations of where to place the colors, valid numbers are from 0.0 - 1.0 public let colorLocations: [CGFloat] - /// create a new UICircularGradientOptions + /// create a new UICircularRingGradientOptions public init(startPosition: UICircularRingGradientPosition, endPosition: UICircularRingGradientPosition, colors: [UIColor], From a6d402a1c4384b35beb416466005b599eb6dc7a4 Mon Sep 17 00:00:00 2001 From: Luis Date: Fri, 22 Feb 2019 14:46:41 -0500 Subject: [PATCH 4/5] update readme and podspec --- CHANGELOG.md | 10 ++++++++++ UICircularProgressRing.podspec | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 23d0a20d..5b21a428 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,13 @@ +# Version 6.0.0 + +- Fixed issue with API of `UICircularRingStyle` which made it impossible to have both a gradient and outer ring style, etc. +- Refactor way that `UICircularRingValueFormatter` works. It's now a simple protocol which anyone can conform to. There are two concrete implementations from 5.0.0 which can still be used, however, they're now `struct`s so cannot be mutated. + +### Breaking Changes + +- Due to the fact that both the `.style` property now doesnt allow setting `.gradient`, this API has been broken. Instead, use the new `.gradientOptions` property to set a gradient, and `.style` if you need extra styling on top of gradient +- Because the value formatter are now structs, they cannot be modified with `.` syntax. Instead create a brand new formatter and assign to the `.valueFormatter` property. This will be over all much better in the future, less state and structs are cool! + # Version 5.1.0 *wow bug fixes already?* diff --git a/UICircularProgressRing.podspec b/UICircularProgressRing.podspec index 697d1967..f7126d0f 100644 --- a/UICircularProgressRing.podspec +++ b/UICircularProgressRing.podspec @@ -2,7 +2,7 @@ Pod::Spec.new do |s| s.name = "UICircularProgressRing" - s.version = "5.1.0" + s.version = "6.0.0" s.summary = "A highly customizable circular progress bar for iOS written in Swift" s.description = <<-DESC From 3f62ae2e48436349a0cd3eebba41e8af6bfecf37 Mon Sep 17 00:00:00 2001 From: Luis Date: Fri, 22 Feb 2019 14:48:44 -0500 Subject: [PATCH 5/5] update docs --- docs/Classes.html | 154 +------------ docs/Classes/UICircularProgressRing.html | 32 +-- docs/Classes/UICircularRing.html | 56 ++++- .../Classes/UICircularRingValueFormatter.html | 207 ------------------ docs/Classes/UICircularTimerRing.html | 32 +-- docs/Classes/UICircularTimerRing/State.html | 24 +- docs/Enums.html | 24 +- .../Enums/UICircularRingGradientPosition.html | 24 +- docs/Enums/UICircularRingStyle.html | 51 +---- docs/Protocols.html | 65 +++++- .../UICircularProgressRingDelegate.html | 24 +- .../UICircularRingValueFormatter.html | 146 ++++++++++++ docs/Structs.html | 128 +++++++++-- .../UICircularProgressRingFormatter.html | 58 ++--- .../UICircularRingGradientOptions.html} | 68 +++--- .../Structs/UICircularRingValueKnobStyle.html | 24 +- .../UICircularTimerRingFormatter.html | 50 ++--- docs/badge.svg | 4 +- .../Contents/Resources/Documents/Classes.html | 154 +------------ .../Classes/UICircularProgressRing.html | 32 +-- .../Documents/Classes/UICircularRing.html | 56 ++++- .../Classes/UICircularRingValueFormatter.html | 207 ------------------ .../Classes/UICircularTimerRing.html | 32 +-- .../Classes/UICircularTimerRing/State.html | 24 +- .../Contents/Resources/Documents/Enums.html | 24 +- .../Enums/UICircularRingGradientPosition.html | 24 +- .../Documents/Enums/UICircularRingStyle.html | 51 +---- .../Resources/Documents/Protocols.html | 65 +++++- .../UICircularProgressRingDelegate.html | 24 +- .../UICircularRingValueFormatter.html | 146 ++++++++++++ .../Contents/Resources/Documents/Structs.html | 128 +++++++++-- .../UICircularProgressRingFormatter.html | 58 ++--- .../UICircularRingGradientOptions.html} | 68 +++--- .../Structs/UICircularRingValueKnobStyle.html | 24 +- .../UICircularTimerRingFormatter.html | 50 ++--- .../Contents/Resources/Documents/index.html | 24 +- .../Contents/Resources/Documents/search.json | 2 +- .../Contents/Resources/docSet.dsidx | Bin 45056 -> 45056 bytes docs/docsets/UICircularProgressRing.tgz | Bin 67571 -> 66793 bytes docs/index.html | 24 +- docs/search.json | 2 +- run-jazzy.sh | 2 +- 42 files changed, 1135 insertions(+), 1257 deletions(-) delete mode 100644 docs/Classes/UICircularRingValueFormatter.html create mode 100644 docs/Protocols/UICircularRingValueFormatter.html rename docs/{Classes => Structs}/UICircularProgressRingFormatter.html (86%) rename docs/{docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Structs/UICircularGradientOptions.html => Structs/UICircularRingGradientOptions.html} (83%) rename docs/{Classes => Structs}/UICircularTimerRingFormatter.html (83%) delete mode 100644 docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Classes/UICircularRingValueFormatter.html create mode 100644 docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Protocols/UICircularRingValueFormatter.html rename docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/{Classes => Structs}/UICircularProgressRingFormatter.html (86%) rename docs/{Structs/UICircularGradientOptions.html => docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Structs/UICircularRingGradientOptions.html} (83%) rename docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/{Classes => Structs}/UICircularTimerRingFormatter.html (83%) diff --git a/docs/Classes.html b/docs/Classes.html index 5f245ad2..afcca978 100644 --- a/docs/Classes.html +++ b/docs/Classes.html @@ -14,7 +14,7 @@
@@ -34,24 +34,15 @@ - - - + @@ -172,136 +172,6 @@

Declaration

-
- -
    -
  • - -
    -
    -
    -
    -
    -

    UICricularRingValueFormatter

    - -

    The base class for all the UICircularRing formatters. -Subclasses should implement string(forValue:) as this is used -to format the value into a string in the base class

    - -

    Two concrete implementations are provided, refer to UICircularTimerRingFormatter -and UICircularProgressRingFormatter

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class UICircularRingValueFormatter : Formatter
    - -
    -
    -
    -
    -
  • -
-
-
- - -
-
- -
    -
  • - -
    -
    -
    -
    -
    -

    UICircularProgressRingFormatter

    - -

    The formatter used in UICircularProgressRing class, -responsible for formatting the value of the ring into a readable string

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    final public class UICircularProgressRingFormatter : UICircularRingValueFormatter
    - -
    -
    -
    -
    -
  • -
-
+ @@ -340,9 +340,9 @@

Declaration

  • @@ -354,7 +354,7 @@

    Declaration

    value of the progress ring into a readable text string which is then displayed in the label of the ring.

    -

    Default formatter is of type UICircularProgressRingFormatter.

    +

    Default formatter is of type UICircularProgressRingFormatter.

    Author

    Luis Padron

    @@ -364,7 +364,7 @@

    Author

    Declaration

    Swift

    -
    public var valueFormatter: UICircularProgressRingFormatter { get set }
    +
    public var valueFormatter: UICircularRingValueFormatter { get set }
    @@ -591,7 +591,7 @@

    Declaration

    diff --git a/docs/Classes/UICircularRing.html b/docs/Classes/UICircularRing.html index b33312c1..23490d84 100644 --- a/docs/Classes/UICircularRing.html +++ b/docs/Classes/UICircularRing.html @@ -14,7 +14,7 @@
    @@ -34,24 +34,15 @@
  • - - - + @@ -210,6 +210,38 @@

    Declaration

    +
  • +
    + + + + gradientOptions + +
    +
    +
    +
    +
    +
    +

    The options for a gradient ring.

    + +

    If this is non-nil then a gradient style will be applied.

    + +

    ## Important ## +Default = nil

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open var gradientOptions: UICircularRingGradientOptions? { get set }
    + +
    +
    +
    +
    +
  • @@ -997,7 +1029,7 @@

    Declaration

    diff --git a/docs/Classes/UICircularRingValueFormatter.html b/docs/Classes/UICircularRingValueFormatter.html deleted file mode 100644 index 242b371d..00000000 --- a/docs/Classes/UICircularRingValueFormatter.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - UICircularRingValueFormatter Class Reference - - - - - - - - - - -
    - -
    -
    - -
    -
    - -
    -
    -
    -

    UICircularRingValueFormatter

    -
    -
    -
    open class UICircularRingValueFormatter : Formatter
    - -
    -
    -

    UICricularRingValueFormatter

    - -

    The base class for all the UICircularRing formatters. -Subclasses should implement string(forValue:) as this is used -to format the value into a string in the base class

    - -

    Two concrete implementations are provided, refer to UICircularTimerRingFormatter -and UICircularProgressRingFormatter

    - -
    -
    -
    -
      -
    • -
      - - - - string(for:) - -
      -
      -
      -
      -
      -
      -

      returns result of string(forValue:)

      - -
      -
      -

      Declaration

      -
      -

      Swift

      -
      open override func string(for obj: Any?) -> String?
      - -
      -
      -
      -
      -
    • -
    • - -
      -
      -
      -
      -
      -

      always returns false

      - -
      -
      -

      Declaration

      -
      -

      Swift

      -
      open override func getObjectValue(_ obj: AutoreleasingUnsafeMutablePointer<AnyObject?>?,
      -                                  for string: String,
      -                                  errorDescription error: AutoreleasingUnsafeMutablePointer<NSString?>?) -> Bool
      - -
      -
      -
      -
      -
    • -
    • -
      - - - - string(forValue:) - -
      -
      -
      -
      -
      -
      -

      not implemented

      - -
      -
      -

      Declaration

      -
      -

      Swift

      -
      open func string(forValue value: CGFloat) -> String?
      - -
      -
      -
      -
      -
    • -
    -
    -
    -
    - -
    -
    - -
    - diff --git a/docs/Classes/UICircularTimerRing.html b/docs/Classes/UICircularTimerRing.html index fc86efa4..4fe41bb8 100644 --- a/docs/Classes/UICircularTimerRing.html +++ b/docs/Classes/UICircularTimerRing.html @@ -14,7 +14,7 @@
    @@ -34,24 +34,15 @@
  • - - - + @@ -112,9 +112,9 @@

    Members

  • @@ -124,14 +124,14 @@

    Members

    The formatter used when formatting the value into a string for the ring.

    -

    Default formatter is of type UICircularTimerRingFormatter.

    +

    Default formatter is of type UICircularTimerRingFormatter.

    Declaration

    Swift

    -
    public var valueFormatter: UICircularTimerRingFormatter { get set }
    +
    public var valueFormatter: UICircularRingValueFormatter { get set }
    @@ -335,7 +335,7 @@

    Declaration

    diff --git a/docs/Classes/UICircularTimerRing/State.html b/docs/Classes/UICircularTimerRing/State.html index 306f7fca..21f5bc8d 100644 --- a/docs/Classes/UICircularTimerRing/State.html +++ b/docs/Classes/UICircularTimerRing/State.html @@ -14,7 +14,7 @@
    @@ -34,24 +34,15 @@
  • - - - + @@ -188,7 +188,7 @@

    Declaration

    diff --git a/docs/Enums.html b/docs/Enums.html index 6a40768f..f67e1ae3 100644 --- a/docs/Enums.html +++ b/docs/Enums.html @@ -14,7 +14,7 @@
    @@ -34,24 +34,15 @@ - - - + @@ -184,7 +184,7 @@

    Declaration

    diff --git a/docs/Enums/UICircularRingGradientPosition.html b/docs/Enums/UICircularRingGradientPosition.html index 2d7dae81..e4a1a35f 100644 --- a/docs/Enums/UICircularRingGradientPosition.html +++ b/docs/Enums/UICircularRingGradientPosition.html @@ -14,7 +14,7 @@
    @@ -34,24 +34,15 @@ - - - + @@ -327,7 +327,7 @@

    Declaration

    diff --git a/docs/Enums/UICircularRingStyle.html b/docs/Enums/UICircularRingStyle.html index a82b8b1c..f7b71e16 100644 --- a/docs/Enums/UICircularRingStyle.html +++ b/docs/Enums/UICircularRingStyle.html @@ -14,7 +14,7 @@
    @@ -34,24 +34,15 @@ - - - + @@ -215,33 +215,6 @@

    Declaration

    -
  • -
    - - - - gradient(options:) - -
    -
    -
    -
    -
    -
    -

    inner ring is placed ontop of the outer ring and it has a gradient, look at UICircularGradientOptions

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    case gradient(options: UICircularGradientOptions)
    - -
    -
    -
    -
    -
  • @@ -274,7 +247,7 @@

    Declaration

    diff --git a/docs/Protocols.html b/docs/Protocols.html index b19392be..71b2d6cc 100644 --- a/docs/Protocols.html +++ b/docs/Protocols.html @@ -14,7 +14,7 @@
    @@ -34,24 +34,15 @@
  • - - - + @@ -136,10 +136,51 @@

    Declaration

    +
    + +
      +
    • + +
      +
      +
      +
      +
      +

      UICircularRingValueFormatter

      + +

      Any custom formatter must conform to this protocol.

      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public protocol UICircularRingValueFormatter
      + +
      +
      +
      +
      +
    • +
    +
    diff --git a/docs/Protocols/UICircularProgressRingDelegate.html b/docs/Protocols/UICircularProgressRingDelegate.html index 67df6f2a..f891e1e8 100644 --- a/docs/Protocols/UICircularProgressRingDelegate.html +++ b/docs/Protocols/UICircularProgressRingDelegate.html @@ -14,7 +14,7 @@
    @@ -34,24 +34,15 @@ - - - + @@ -285,7 +285,7 @@

    Declaration

    diff --git a/docs/Protocols/UICircularRingValueFormatter.html b/docs/Protocols/UICircularRingValueFormatter.html new file mode 100644 index 00000000..d5154c44 --- /dev/null +++ b/docs/Protocols/UICircularRingValueFormatter.html @@ -0,0 +1,146 @@ + + + + UICircularRingValueFormatter Protocol Reference + + + + + + + + + + +
    + +
    +
    + +
    +
    + +
    +
    +
    +

    UICircularRingValueFormatter

    +
    +
    +
    public protocol UICircularRingValueFormatter
    + +
    +
    +

    UICircularRingValueFormatter

    + +

    Any custom formatter must conform to this protocol.

    + +
    +
    +
    +
      +
    • +
      + + + + string(for:) + +
      +
      +
      +
      +
      +
      +

      returns a string for the given object

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      func string(for value: Any) -> String?
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + diff --git a/docs/Structs.html b/docs/Structs.html index ed3e2fbd..8ed45ac5 100644 --- a/docs/Structs.html +++ b/docs/Structs.html @@ -14,7 +14,7 @@
    @@ -34,24 +34,15 @@ - - - + @@ -140,19 +140,19 @@

    Declaration

    • @@ -160,20 +160,104 @@

      UICircularGradientOptions

      -

      UICircularGradientOptions

      +

      UICircularRingGradientOptions

      Struct for defining the options for the UICircularRingStyle.gradient case.

      Important

      Make sure the number of colors is equal to the number of colorLocations

      - See more + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public struct UICircularRingGradientOptions
      + +
      +
      +
      +
      +
    • +
    +
    +
    + + +
    +
    + + + @@ -92,7 +92,7 @@

    UICircularProgressRingFormatter

    -
    final public class UICircularProgressRingFormatter : UICircularRingValueFormatter
    +
    public struct UICircularProgressRingFormatter : UICircularRingValueFormatter
    @@ -115,9 +115,9 @@

    Members

  • @@ -150,9 +150,9 @@

    Declaration

  • @@ -184,9 +184,9 @@

    Declaration

  • @@ -220,9 +220,9 @@

    Declaration

  • @@ -255,9 +255,9 @@

    Declaration

  • @@ -272,7 +272,7 @@

    Declaration

    Declaration

    Swift

    -
    public override func string(forValue value: CGFloat) -> String?
    +
    public func string(for value: Any) -> String?
    @@ -284,7 +284,7 @@

    Declaration

    diff --git a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Structs/UICircularGradientOptions.html b/docs/Structs/UICircularRingGradientOptions.html similarity index 83% rename from docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Structs/UICircularGradientOptions.html rename to docs/Structs/UICircularRingGradientOptions.html index 6751f13b..e3f5a4fa 100644 --- a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Structs/UICircularGradientOptions.html +++ b/docs/Structs/UICircularRingGradientOptions.html @@ -1,7 +1,7 @@ - UICircularGradientOptions Structure Reference + UICircularRingGradientOptions Structure Reference @@ -10,11 +10,11 @@ - - + +
    @@ -22,7 +22,7 @@
  • @@ -34,24 +34,15 @@ - - - + @@ -89,14 +89,14 @@
    -

    UICircularGradientOptions

    +

    UICircularRingGradientOptions

    -
    public struct UICircularGradientOptions
    +
    public struct UICircularRingGradientOptions
    -

    UICircularGradientOptions

    +

    UICircularRingGradientOptions

    Struct for defining the options for the UICircularRingStyle.gradient case.

    Important

    @@ -110,9 +110,9 @@

    Important

  • - + - default + default
    @@ -127,7 +127,7 @@

    Important

    Declaration

    Swift

    -
    public static let `default`: UICircularGradientOptions
    +
    public static let `default`: UICircularRingGradientOptions
    @@ -137,9 +137,9 @@

    Declaration

  • @@ -164,9 +164,9 @@

    Declaration

  • @@ -191,9 +191,9 @@

    Declaration

  • - + - colors + colors
    @@ -201,7 +201,7 @@

    Declaration

    -

    the colors to use in the gradient, the count of this list must match the count of colorLocations

    +

    the colors to use in the gradient, the count of this list must match the count of colorLocations

    @@ -218,9 +218,9 @@

    Declaration

  • @@ -245,9 +245,9 @@

    Declaration

  • @@ -255,7 +255,7 @@

    Declaration

    -

    create a new UICircularGradientOptions

    +

    create a new UICircularRingGradientOptions

    @@ -277,7 +277,7 @@

    Declaration

  • diff --git a/docs/Structs/UICircularRingValueKnobStyle.html b/docs/Structs/UICircularRingValueKnobStyle.html index 6080ca4e..0e1a27e5 100644 --- a/docs/Structs/UICircularRingValueKnobStyle.html +++ b/docs/Structs/UICircularRingValueKnobStyle.html @@ -14,7 +14,7 @@
    @@ -34,24 +34,15 @@ - - - + @@ -305,7 +305,7 @@

    Declaration

    diff --git a/docs/Classes/UICircularTimerRingFormatter.html b/docs/Structs/UICircularTimerRingFormatter.html similarity index 83% rename from docs/Classes/UICircularTimerRingFormatter.html rename to docs/Structs/UICircularTimerRingFormatter.html index cf69e7fc..0c0eec00 100644 --- a/docs/Classes/UICircularTimerRingFormatter.html +++ b/docs/Structs/UICircularTimerRingFormatter.html @@ -1,7 +1,7 @@ - UICircularTimerRingFormatter Class Reference + UICircularTimerRingFormatter Structure Reference @@ -10,11 +10,11 @@ - - + +
    @@ -22,7 +22,7 @@
    @@ -34,24 +34,15 @@ - - - + @@ -92,7 +92,7 @@

    UICircularTimerRingFormatter

    -
    final public class UICircularTimerRingFormatter : UICircularRingValueFormatter
    +
    public struct UICircularTimerRingFormatter : UICircularRingValueFormatter
    @@ -115,9 +115,9 @@

    Members

  • - + - units + units
    @@ -142,9 +142,9 @@

    Declaration

  • - + - style + style
    @@ -180,9 +180,9 @@

    API

  • @@ -197,7 +197,7 @@

    API

    Declaration

    Swift

    -
    public override func string(forValue value: CGFloat) -> String?
    +
    public func string(for value: Any) -> String?
    @@ -209,7 +209,7 @@

    Declaration

    diff --git a/docs/badge.svg b/docs/badge.svg index 5f56a7ec..7c971c68 100644 --- a/docs/badge.svg +++ b/docs/badge.svg @@ -19,10 +19,10 @@ documentation - 97% + 96% - 97% + 96% diff --git a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Classes.html b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Classes.html index 5f245ad2..afcca978 100644 --- a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Classes.html +++ b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Classes.html @@ -14,7 +14,7 @@
    @@ -34,24 +34,15 @@
  • - - - + @@ -172,136 +172,6 @@

    Declaration

    -
    - -
      -
    • - -
      -
      -
      -
      -
      -

      UICricularRingValueFormatter

      - -

      The base class for all the UICircularRing formatters. -Subclasses should implement string(forValue:) as this is used -to format the value into a string in the base class

      - -

      Two concrete implementations are provided, refer to UICircularTimerRingFormatter -and UICircularProgressRingFormatter

      - - See more -
      -
      -

      Declaration

      -
      -

      Swift

      -
      open class UICircularRingValueFormatter : Formatter
      - -
      -
      -
      -
      -
    • -
    -
    -
    - - -
    -
    - -
      -
    • - -
      -
      -
      -
      -
      -

      UICircularProgressRingFormatter

      - -

      The formatter used in UICircularProgressRing class, -responsible for formatting the value of the ring into a readable string

      - - See more -
      -
      -

      Declaration

      -
      -

      Swift

      -
      final public class UICircularProgressRingFormatter : UICircularRingValueFormatter
      - -
      -
      -
      -
      -
    • -
    -
    + @@ -340,9 +340,9 @@

    Declaration

  • @@ -354,7 +354,7 @@

    Declaration

    value of the progress ring into a readable text string which is then displayed in the label of the ring.

    -

    Default formatter is of type UICircularProgressRingFormatter.

    +

    Default formatter is of type UICircularProgressRingFormatter.

    Author

    Luis Padron

    @@ -364,7 +364,7 @@

    Author

    Declaration

    Swift

    -
    public var valueFormatter: UICircularProgressRingFormatter { get set }
    +
    public var valueFormatter: UICircularRingValueFormatter { get set }
    @@ -591,7 +591,7 @@

    Declaration

    diff --git a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Classes/UICircularRing.html b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Classes/UICircularRing.html index b33312c1..23490d84 100644 --- a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Classes/UICircularRing.html +++ b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Classes/UICircularRing.html @@ -14,7 +14,7 @@
    @@ -34,24 +34,15 @@
  • - - - + @@ -210,6 +210,38 @@

    Declaration

    +
  • +
    + + + + gradientOptions + +
    +
    +
    +
    +
    +
    +

    The options for a gradient ring.

    + +

    If this is non-nil then a gradient style will be applied.

    + +

    ## Important ## +Default = nil

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open var gradientOptions: UICircularRingGradientOptions? { get set }
    + +
    +
    +
    +
    +
  • @@ -997,7 +1029,7 @@

    Declaration

    diff --git a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Classes/UICircularRingValueFormatter.html b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Classes/UICircularRingValueFormatter.html deleted file mode 100644 index 242b371d..00000000 --- a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Classes/UICircularRingValueFormatter.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - UICircularRingValueFormatter Class Reference - - - - - - - - - - -
    - -
    -
    - -
    -
    - -
    -
    -
    -

    UICircularRingValueFormatter

    -
    -
    -
    open class UICircularRingValueFormatter : Formatter
    - -
    -
    -

    UICricularRingValueFormatter

    - -

    The base class for all the UICircularRing formatters. -Subclasses should implement string(forValue:) as this is used -to format the value into a string in the base class

    - -

    Two concrete implementations are provided, refer to UICircularTimerRingFormatter -and UICircularProgressRingFormatter

    - -
    -
    -
    -
      -
    • -
      - - - - string(for:) - -
      -
      -
      -
      -
      -
      -

      returns result of string(forValue:)

      - -
      -
      -

      Declaration

      -
      -

      Swift

      -
      open override func string(for obj: Any?) -> String?
      - -
      -
      -
      -
      -
    • -
    • - -
      -
      -
      -
      -
      -

      always returns false

      - -
      -
      -

      Declaration

      -
      -

      Swift

      -
      open override func getObjectValue(_ obj: AutoreleasingUnsafeMutablePointer<AnyObject?>?,
      -                                  for string: String,
      -                                  errorDescription error: AutoreleasingUnsafeMutablePointer<NSString?>?) -> Bool
      - -
      -
      -
      -
      -
    • -
    • -
      - - - - string(forValue:) - -
      -
      -
      -
      -
      -
      -

      not implemented

      - -
      -
      -

      Declaration

      -
      -

      Swift

      -
      open func string(forValue value: CGFloat) -> String?
      - -
      -
      -
      -
      -
    • -
    -
    -
    -
    - -
    -
    - -
    - diff --git a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Classes/UICircularTimerRing.html b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Classes/UICircularTimerRing.html index fc86efa4..4fe41bb8 100644 --- a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Classes/UICircularTimerRing.html +++ b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Classes/UICircularTimerRing.html @@ -14,7 +14,7 @@
    @@ -34,24 +34,15 @@
  • - - - + @@ -112,9 +112,9 @@

    Members

  • @@ -124,14 +124,14 @@

    Members

    The formatter used when formatting the value into a string for the ring.

    -

    Default formatter is of type UICircularTimerRingFormatter.

    +

    Default formatter is of type UICircularTimerRingFormatter.

    Declaration

    Swift

    -
    public var valueFormatter: UICircularTimerRingFormatter { get set }
    +
    public var valueFormatter: UICircularRingValueFormatter { get set }
    @@ -335,7 +335,7 @@

    Declaration

    diff --git a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Classes/UICircularTimerRing/State.html b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Classes/UICircularTimerRing/State.html index 306f7fca..21f5bc8d 100644 --- a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Classes/UICircularTimerRing/State.html +++ b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Classes/UICircularTimerRing/State.html @@ -14,7 +14,7 @@
    @@ -34,24 +34,15 @@
  • - - - + @@ -188,7 +188,7 @@

    Declaration

    diff --git a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Enums.html b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Enums.html index 6a40768f..f67e1ae3 100644 --- a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Enums.html +++ b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Enums.html @@ -14,7 +14,7 @@
    @@ -34,24 +34,15 @@ - - - + @@ -184,7 +184,7 @@

    Declaration

    diff --git a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Enums/UICircularRingGradientPosition.html b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Enums/UICircularRingGradientPosition.html index 2d7dae81..e4a1a35f 100644 --- a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Enums/UICircularRingGradientPosition.html +++ b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Enums/UICircularRingGradientPosition.html @@ -14,7 +14,7 @@
    @@ -34,24 +34,15 @@ - - - + @@ -327,7 +327,7 @@

    Declaration

    diff --git a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Enums/UICircularRingStyle.html b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Enums/UICircularRingStyle.html index a82b8b1c..f7b71e16 100644 --- a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Enums/UICircularRingStyle.html +++ b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Enums/UICircularRingStyle.html @@ -14,7 +14,7 @@
    @@ -34,24 +34,15 @@ - - - + @@ -215,33 +215,6 @@

    Declaration

    -
  • -
    - - - - gradient(options:) - -
    -
    -
    -
    -
    -
    -

    inner ring is placed ontop of the outer ring and it has a gradient, look at UICircularGradientOptions

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    case gradient(options: UICircularGradientOptions)
    - -
    -
    -
    -
    -
  • @@ -274,7 +247,7 @@

    Declaration

    diff --git a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Protocols.html b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Protocols.html index b19392be..71b2d6cc 100644 --- a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Protocols.html +++ b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Protocols.html @@ -14,7 +14,7 @@
    @@ -34,24 +34,15 @@
  • - - - + @@ -136,10 +136,51 @@

    Declaration

    +
    + +
      +
    • + +
      +
      +
      +
      +
      +

      UICircularRingValueFormatter

      + +

      Any custom formatter must conform to this protocol.

      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public protocol UICircularRingValueFormatter
      + +
      +
      +
      +
      +
    • +
    +
    diff --git a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Protocols/UICircularProgressRingDelegate.html b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Protocols/UICircularProgressRingDelegate.html index 67df6f2a..f891e1e8 100644 --- a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Protocols/UICircularProgressRingDelegate.html +++ b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Protocols/UICircularProgressRingDelegate.html @@ -14,7 +14,7 @@
    @@ -34,24 +34,15 @@ - - - + @@ -285,7 +285,7 @@

    Declaration

    diff --git a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Protocols/UICircularRingValueFormatter.html b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Protocols/UICircularRingValueFormatter.html new file mode 100644 index 00000000..d5154c44 --- /dev/null +++ b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Protocols/UICircularRingValueFormatter.html @@ -0,0 +1,146 @@ + + + + UICircularRingValueFormatter Protocol Reference + + + + + + + + + + +
    + +
    +
    + +
    +
    + +
    +
    +
    +

    UICircularRingValueFormatter

    +
    +
    +
    public protocol UICircularRingValueFormatter
    + +
    +
    +

    UICircularRingValueFormatter

    + +

    Any custom formatter must conform to this protocol.

    + +
    +
    +
    +
      +
    • +
      + + + + string(for:) + +
      +
      +
      +
      +
      +
      +

      returns a string for the given object

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      func string(for value: Any) -> String?
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + diff --git a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Structs.html b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Structs.html index ed3e2fbd..8ed45ac5 100644 --- a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Structs.html +++ b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Structs.html @@ -14,7 +14,7 @@
    @@ -34,24 +34,15 @@ - - - + @@ -140,19 +140,19 @@

    Declaration

    • @@ -160,20 +160,104 @@

      UICircularGradientOptions

      -

      UICircularGradientOptions

      +

      UICircularRingGradientOptions

      Struct for defining the options for the UICircularRingStyle.gradient case.

      Important

      Make sure the number of colors is equal to the number of colorLocations

      - See more + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public struct UICircularRingGradientOptions
      + +
      +
      +
      +
      +
    • +
    +
    +
    + + +
    +
    + +
      +
    • + +
      +
      +
      +
      +
      +

      UICircularProgressRingFormatter

      + +

      The formatter used in UICircularProgressRing class, +responsible for formatting the value of the ring into a readable string

      + + See more

      Declaration

      Swift

      -
      public struct UICircularGradientOptions
      +
      public struct UICircularProgressRingFormatter : UICircularRingValueFormatter
      @@ -185,7 +269,7 @@

      Declaration

      diff --git a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Classes/UICircularProgressRingFormatter.html b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Structs/UICircularProgressRingFormatter.html similarity index 86% rename from docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Classes/UICircularProgressRingFormatter.html rename to docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Structs/UICircularProgressRingFormatter.html index 501bf383..42bc7c5a 100644 --- a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Classes/UICircularProgressRingFormatter.html +++ b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Structs/UICircularProgressRingFormatter.html @@ -1,7 +1,7 @@ - UICircularProgressRingFormatter Class Reference + UICircularProgressRingFormatter Structure Reference @@ -10,11 +10,11 @@ - - + +
      @@ -22,7 +22,7 @@
      @@ -34,24 +34,15 @@
    • - - -
    + @@ -92,7 +92,7 @@

    UICircularProgressRingFormatter

    -
    final public class UICircularProgressRingFormatter : UICircularRingValueFormatter
    +
    public struct UICircularProgressRingFormatter : UICircularRingValueFormatter
    @@ -115,9 +115,9 @@

    Members

  • @@ -150,9 +150,9 @@

    Declaration

  • @@ -184,9 +184,9 @@

    Declaration

  • @@ -220,9 +220,9 @@

    Declaration

  • @@ -255,9 +255,9 @@

    Declaration

  • @@ -272,7 +272,7 @@

    Declaration

    Declaration

    Swift

    -
    public override func string(forValue value: CGFloat) -> String?
    +
    public func string(for value: Any) -> String?
    @@ -284,7 +284,7 @@

    Declaration

    diff --git a/docs/Structs/UICircularGradientOptions.html b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Structs/UICircularRingGradientOptions.html similarity index 83% rename from docs/Structs/UICircularGradientOptions.html rename to docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Structs/UICircularRingGradientOptions.html index 6751f13b..e3f5a4fa 100644 --- a/docs/Structs/UICircularGradientOptions.html +++ b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Structs/UICircularRingGradientOptions.html @@ -1,7 +1,7 @@ - UICircularGradientOptions Structure Reference + UICircularRingGradientOptions Structure Reference @@ -10,11 +10,11 @@ - - + +
    @@ -22,7 +22,7 @@
  • @@ -34,24 +34,15 @@ - - - + @@ -89,14 +89,14 @@
    -

    UICircularGradientOptions

    +

    UICircularRingGradientOptions

    -
    public struct UICircularGradientOptions
    +
    public struct UICircularRingGradientOptions
    -

    UICircularGradientOptions

    +

    UICircularRingGradientOptions

    Struct for defining the options for the UICircularRingStyle.gradient case.

    Important

    @@ -110,9 +110,9 @@

    Important

  • - + - default + default
    @@ -127,7 +127,7 @@

    Important

    Declaration

    Swift

    -
    public static let `default`: UICircularGradientOptions
    +
    public static let `default`: UICircularRingGradientOptions
    @@ -137,9 +137,9 @@

    Declaration

  • @@ -164,9 +164,9 @@

    Declaration

  • @@ -191,9 +191,9 @@

    Declaration

  • - + - colors + colors
    @@ -201,7 +201,7 @@

    Declaration

    -

    the colors to use in the gradient, the count of this list must match the count of colorLocations

    +

    the colors to use in the gradient, the count of this list must match the count of colorLocations

    @@ -218,9 +218,9 @@

    Declaration

  • @@ -245,9 +245,9 @@

    Declaration

  • @@ -255,7 +255,7 @@

    Declaration

    -

    create a new UICircularGradientOptions

    +

    create a new UICircularRingGradientOptions

    @@ -277,7 +277,7 @@

    Declaration

  • diff --git a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Structs/UICircularRingValueKnobStyle.html b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Structs/UICircularRingValueKnobStyle.html index 6080ca4e..0e1a27e5 100644 --- a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Structs/UICircularRingValueKnobStyle.html +++ b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Structs/UICircularRingValueKnobStyle.html @@ -14,7 +14,7 @@
    @@ -34,24 +34,15 @@ - - - + @@ -305,7 +305,7 @@

    Declaration

    diff --git a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Classes/UICircularTimerRingFormatter.html b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Structs/UICircularTimerRingFormatter.html similarity index 83% rename from docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Classes/UICircularTimerRingFormatter.html rename to docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Structs/UICircularTimerRingFormatter.html index cf69e7fc..0c0eec00 100644 --- a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Classes/UICircularTimerRingFormatter.html +++ b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/Structs/UICircularTimerRingFormatter.html @@ -1,7 +1,7 @@ - UICircularTimerRingFormatter Class Reference + UICircularTimerRingFormatter Structure Reference @@ -10,11 +10,11 @@ - - + +
    @@ -22,7 +22,7 @@
    @@ -34,24 +34,15 @@ - - - + @@ -92,7 +92,7 @@

    UICircularTimerRingFormatter

    -
    final public class UICircularTimerRingFormatter : UICircularRingValueFormatter
    +
    public struct UICircularTimerRingFormatter : UICircularRingValueFormatter
    @@ -115,9 +115,9 @@

    Members

  • - + - units + units
    @@ -142,9 +142,9 @@

    Declaration

  • - + - style + style
    @@ -180,9 +180,9 @@

    API

  • @@ -197,7 +197,7 @@

    API

    Declaration

    Swift

    -
    public override func string(forValue value: CGFloat) -> String?
    +
    public func string(for value: Any) -> String?
    @@ -209,7 +209,7 @@

    Declaration

    diff --git a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/index.html b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/index.html index f93b1b92..b6f00235 100644 --- a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/index.html +++ b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/index.html @@ -13,7 +13,7 @@
    @@ -33,24 +33,15 @@
  • - - - + @@ -103,7 +103,7 @@

    Authors

    diff --git a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/search.json b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/search.json index 19f9edd4..3021e1ac 100644 --- a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/search.json +++ b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/Documents/search.json @@ -1 +1 @@ -{"Structs/UICircularGradientOptions.html#/s:22UICircularProgressRing0A15GradientOptionsV7defaultACvpZ":{"name":"default","abstract":"

    a default styling option for the gradient style

    ","parent_name":"UICircularGradientOptions"},"Structs/UICircularGradientOptions.html#/s:22UICircularProgressRing0A15GradientOptionsV13startPositionAA0acdG0Ovp":{"name":"startPosition","abstract":"

    the start location for the gradient

    ","parent_name":"UICircularGradientOptions"},"Structs/UICircularGradientOptions.html#/s:22UICircularProgressRing0A15GradientOptionsV11endPositionAA0acdG0Ovp":{"name":"endPosition","abstract":"

    the end location for the gradient

    ","parent_name":"UICircularGradientOptions"},"Structs/UICircularGradientOptions.html#/s:22UICircularProgressRing0A15GradientOptionsV6colorsSaySo7UIColorCGvp":{"name":"colors","abstract":"

    the colors to use in the gradient, the count of this list must match the count of colorLocations

    ","parent_name":"UICircularGradientOptions"},"Structs/UICircularGradientOptions.html#/s:22UICircularProgressRing0A15GradientOptionsV14colorLocationsSay12CoreGraphics7CGFloatVGvp":{"name":"colorLocations","abstract":"

    the locations of where to place the colors, valid numbers are from 0.0 - 1.0

    ","parent_name":"UICircularGradientOptions"},"Structs/UICircularGradientOptions.html#/s:22UICircularProgressRing0A15GradientOptionsV13startPosition03endG06colors14colorLocationsAcA0acdG0O_AISaySo7UIColorCGSay12CoreGraphics7CGFloatVGtcfc":{"name":"init(startPosition:endPosition:colors:colorLocations:)","abstract":"

    create a new UICircularGradientOptions

    ","parent_name":"UICircularGradientOptions"},"Structs/UICircularRingValueKnobStyle.html#/s:22UICircularProgressRing0aC14ValueKnobStyleV7defaultACvpZ":{"name":"default","abstract":"

    default implmementation of the knob style

    ","parent_name":"UICircularRingValueKnobStyle"},"Structs/UICircularRingValueKnobStyle.html#/s:22UICircularProgressRing0aC14ValueKnobStyleV4size12CoreGraphics7CGFloatVvp":{"name":"size","abstract":"

    the size of the knob

    ","parent_name":"UICircularRingValueKnobStyle"},"Structs/UICircularRingValueKnobStyle.html#/s:22UICircularProgressRing0aC14ValueKnobStyleV5colorSo7UIColorCvp":{"name":"color","abstract":"

    the color of the knob

    ","parent_name":"UICircularRingValueKnobStyle"},"Structs/UICircularRingValueKnobStyle.html#/s:22UICircularProgressRing0aC14ValueKnobStyleV10shadowBlur12CoreGraphics7CGFloatVvp":{"name":"shadowBlur","abstract":"

    the amount of blur to give the shadow

    ","parent_name":"UICircularRingValueKnobStyle"},"Structs/UICircularRingValueKnobStyle.html#/s:22UICircularProgressRing0aC14ValueKnobStyleV12shadowOffsetSo6CGSizeVvp":{"name":"shadowOffset","abstract":"

    the offset to give the shadow

    ","parent_name":"UICircularRingValueKnobStyle"},"Structs/UICircularRingValueKnobStyle.html#/s:22UICircularProgressRing0aC14ValueKnobStyleV11shadowColorSo7UIColorCvp":{"name":"shadowColor","abstract":"

    the color for the shadow

    ","parent_name":"UICircularRingValueKnobStyle"},"Structs/UICircularRingValueKnobStyle.html#/s:22UICircularProgressRing0aC14ValueKnobStyleV4size5color10shadowBlur0I6Offset0I5ColorAC12CoreGraphics7CGFloatV_So7UIColorCAKSo6CGSizeVAMtcfc":{"name":"init(size:color:shadowBlur:shadowOffset:shadowColor:)","abstract":"

    creates a new UICircularRingValueKnobStyle

    ","parent_name":"UICircularRingValueKnobStyle"},"Structs/UICircularRingValueKnobStyle.html":{"name":"UICircularRingValueKnobStyle","abstract":"

    UICircularRingValueKnobStyle

    "},"Structs/UICircularGradientOptions.html":{"name":"UICircularGradientOptions","abstract":"

    UICircularGradientOptions

    "},"Protocols/UICircularProgressRingDelegate.html#/s:22UICircularProgressRing0abC8DelegateP09didFinishB03foryA2AC_tF":{"name":"didFinishProgress(for:)","abstract":"

    Called when progress ring is done animating for current value

    ","parent_name":"UICircularProgressRingDelegate"},"Protocols/UICircularProgressRingDelegate.html#/s:22UICircularProgressRing0abC8DelegateP08didPauseB03foryA2AC_tF":{"name":"didPauseProgress(for:)","abstract":"

    Called when progress has paused

    ","parent_name":"UICircularProgressRingDelegate"},"Protocols/UICircularProgressRingDelegate.html#/s:22UICircularProgressRing0abC8DelegateP011didContinueB03foryA2AC_tF":{"name":"didContinueProgress(for:)","abstract":"

    Called when the progress has continued after a pause

    ","parent_name":"UICircularProgressRingDelegate"},"Protocols/UICircularProgressRingDelegate.html#/s:22UICircularProgressRing0abC8DelegateP09didUpdateB5Value3for2toyA2AC_12CoreGraphics7CGFloatVtF":{"name":"didUpdateProgressValue(for:to:)","abstract":"

    This method is called whenever the value is updated, this means during animation this method will be called in real time.","parent_name":"UICircularProgressRingDelegate"},"Protocols/UICircularProgressRingDelegate.html#/s:22UICircularProgressRing0abC8DelegateP16willDisplayLabel3for_yA2AC_So7UILabelCtF":{"name":"willDisplayLabel(for:_:)","abstract":"

    This method is called whenever the label is about to be drawn.","parent_name":"UICircularProgressRingDelegate"},"Protocols/UICircularProgressRingDelegate.html":{"name":"UICircularProgressRingDelegate","abstract":"

    This is the protocol declaration for the UICircularRing delegate property

    "},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO3topyA2CmF":{"name":"top","abstract":"

    Gradient positioned at the top

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO6bottomyA2CmF":{"name":"bottom","abstract":"

    Gradient positioned at the bottom

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO4leftyA2CmF":{"name":"left","abstract":"

    Gradient positioned to the left

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO5rightyA2CmF":{"name":"right","abstract":"

    Gradient positioned to the right

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO7topLeftyA2CmF":{"name":"topLeft","abstract":"

    Gradient positioned in the top left corner

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO8topRightyA2CmF":{"name":"topRight","abstract":"

    Gradient positioned in the top right corner

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO10bottomLeftyA2CmF":{"name":"bottomLeft","abstract":"

    Gradient positioned in the bottom left corner

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO11bottomRightyA2CmF":{"name":"bottomRight","abstract":"

    Gradient positioned in the bottom right corner

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingStyle.html#/s:22UICircularProgressRing0aC5StyleO6insideyA2CmF":{"name":"inside","abstract":"

    inner ring is inside the circle

    ","parent_name":"UICircularRingStyle"},"Enums/UICircularRingStyle.html#/s:22UICircularProgressRing0aC5StyleO5ontopyA2CmF":{"name":"ontop","abstract":"

    inner ring is placed ontop of the outer ring

    ","parent_name":"UICircularRingStyle"},"Enums/UICircularRingStyle.html#/s:22UICircularProgressRing0aC5StyleO6dashedyACSay12CoreGraphics7CGFloatVG_tcACmF":{"name":"dashed(pattern:)","abstract":"

    outer ring is dashed, the pattern list is how the dashes should appear

    ","parent_name":"UICircularRingStyle"},"Enums/UICircularRingStyle.html#/s:22UICircularProgressRing0aC5StyleO6dottedyA2CmF":{"name":"dotted","abstract":"

    outer ring is dotted

    ","parent_name":"UICircularRingStyle"},"Enums/UICircularRingStyle.html#/s:22UICircularProgressRing0aC5StyleO8gradientyAcA0A15GradientOptionsV_tcACmF":{"name":"gradient(options:)","abstract":"

    inner ring is placed ontop of the outer ring and it has a gradient, look at UICircularGradientOptions

    ","parent_name":"UICircularRingStyle"},"Enums/UICircularRingStyle.html#/s:22UICircularProgressRing0aC5StyleO8borderedyAC12CoreGraphics7CGFloatV_So7UIColorCtcACmF":{"name":"bordered(width:color:)","abstract":"

    inner ring is placed ontop of the outer ring and outer ring has border

    ","parent_name":"UICircularRingStyle"},"Enums/UICircularRingStyle.html":{"name":"UICircularRingStyle","abstract":"

    UICircularRingStyle

    "},"Enums/UICircularRingGradientPosition.html":{"name":"UICircularRingGradientPosition","abstract":"

    UICircularRingGradientPosition

    "},"Classes/UICircularTimerRing/State.html#/s:22UICircularProgressRing0a5TimerC0C5StateO8finishedyA2EmF":{"name":"finished","abstract":"

    the timer has finished

    ","parent_name":"State"},"Classes/UICircularTimerRing/State.html#/s:22UICircularProgressRing0a5TimerC0C5StateO9continuedyAESdSg_tcAEmF":{"name":"continued(elapsedTime:)","abstract":"

    the timer was continued called continueTimer

    ","parent_name":"State"},"Classes/UICircularTimerRing/State.html#/s:22UICircularProgressRing0a5TimerC0C5StateO6pausedyAESdSg_tcAEmF":{"name":"paused(elpasedTime:)","abstract":"

    the timer was paused called pauseTimer

    ","parent_name":"State"},"Classes/UICircularTimerRing.html#/s:22UICircularProgressRing0a5TimerC0C14valueFormatterAA0adcF0Cvp":{"name":"valueFormatter","abstract":"

    The formatter used when formatting the value into a string for the ring.

    ","parent_name":"UICircularTimerRing"},"Classes/UICircularTimerRing.html#/s:22UICircularProgressRing0a5TimerC0C0D7Handlera":{"name":"TimerHandler","abstract":"

    The handler for the timer.

    ","parent_name":"UICircularTimerRing"},"Classes/UICircularTimerRing.html#/s:22UICircularProgressRing0a5TimerC0C05startD02to7handlerySd_yAC5StateOcSgtF":{"name":"startTimer(to:handler:)","abstract":"

    Starts the timer until the given time is elapsed.

    ","parent_name":"UICircularTimerRing"},"Classes/UICircularTimerRing.html#/s:22UICircularProgressRing0a5TimerC0C05pauseD0yyF":{"name":"pauseTimer()","abstract":"

    Pauses the timer.

    ","parent_name":"UICircularTimerRing"},"Classes/UICircularTimerRing.html#/s:22UICircularProgressRing0a5TimerC0C08continueD0yyF":{"name":"continueTimer()","abstract":"

    Continues the timer from a previously paused time.

    ","parent_name":"UICircularTimerRing"},"Classes/UICircularTimerRing.html#/s:22UICircularProgressRing0a5TimerC0C05resetD0yyF":{"name":"resetTimer()","abstract":"

    Resets the timer, this means the time is reset and","parent_name":"UICircularTimerRing"},"Classes/UICircularTimerRing/State.html":{"name":"State","abstract":"

    state of the timer ring, used in handler

    ","parent_name":"UICircularTimerRing"},"Classes/UICircularProgressRingFormatter.html#/s:22UICircularProgressRing0abC9FormatterC14valueIndicatorSSvp":{"name":"valueIndicator","abstract":"

    The name of the value indicator the value label will","parent_name":"UICircularProgressRingFormatter"},"Classes/UICircularProgressRingFormatter.html#/s:22UICircularProgressRing0abC9FormatterC11rightToLeftSbvp":{"name":"rightToLeft","abstract":"

    A toggle for either placing the value indicator right or left to the value","parent_name":"UICircularProgressRingFormatter"},"Classes/UICircularProgressRingFormatter.html#/s:22UICircularProgressRing0abC9FormatterC17showFloatingPointSbvp":{"name":"showFloatingPoint","abstract":"

    A toggle for showing or hiding floating points from","parent_name":"UICircularProgressRingFormatter"},"Classes/UICircularProgressRingFormatter.html#/s:22UICircularProgressRing0abC9FormatterC13decimalPlacesSivp":{"name":"decimalPlaces","abstract":"

    The amount of decimal places to show in the value label

    ","parent_name":"UICircularProgressRingFormatter"},"Classes/UICircularProgressRingFormatter.html#/s:22UICircularProgressRing0abC9FormatterC6string8forValueSSSg12CoreGraphics7CGFloatV_tF":{"name":"string(forValue:)","abstract":"

    formats the value of the progress ring using the given properties

    ","parent_name":"UICircularProgressRingFormatter"},"Classes/UICircularTimerRingFormatter.html#/s:22UICircularProgressRing0a5TimerC9FormatterC5unitsSo14NSCalendarUnitVvp":{"name":"units","abstract":"

    defines the units allowed to be used when converting string, by default [.minute, .second]

    ","parent_name":"UICircularTimerRingFormatter"},"Classes/UICircularTimerRingFormatter.html#/s:22UICircularProgressRing0a5TimerC9FormatterC5styleSo016NSDateComponentsE10UnitsStyleVvp":{"name":"style","abstract":"

    the style of the formatted string, by default .short

    ","parent_name":"UICircularTimerRingFormatter"},"Classes/UICircularTimerRingFormatter.html#/s:22UICircularProgressRing0a5TimerC9FormatterC6string8forValueSSSg12CoreGraphics7CGFloatV_tF":{"name":"string(forValue:)","abstract":"

    formats the value of the ring using the date components formatter with given units/style

    ","parent_name":"UICircularTimerRingFormatter"},"Classes/UICircularRingValueFormatter.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRingValueFormatter(im)stringForObjectValue:":{"name":"string(for:)","abstract":"

    returns result of string(forValue:)

    ","parent_name":"UICircularRingValueFormatter"},"Classes/UICircularRingValueFormatter.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRingValueFormatter(im)getObjectValue:forString:errorDescription:":{"name":"getObjectValue(_:for:errorDescription:)","abstract":"

    always returns false

    ","parent_name":"UICircularRingValueFormatter"},"Classes/UICircularRingValueFormatter.html#/s:22UICircularProgressRing0aC14ValueFormatterC6string03forD0SSSg12CoreGraphics7CGFloatV_tF":{"name":"string(forValue:)","abstract":"

    not implemented

    ","parent_name":"UICircularRingValueFormatter"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)fullCircle":{"name":"fullCircle","abstract":"

    Whether or not the progress ring should be a full circle.

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C5styleAA0aC5StyleOvp":{"name":"style","abstract":"

    The style of the progress ring.

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)shouldShowValueText":{"name":"shouldShowValueText","abstract":"

    A toggle for showing or hiding the value label.","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C14valueKnobStyleAA0ac5ValueeF0VSgvp":{"name":"valueKnobStyle","abstract":"

    Style for the value knob, default is nil.

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)startAngle":{"name":"startAngle","abstract":"

    The start angle for the entire progress ring view.

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)endAngle":{"name":"endAngle","abstract":"

    The end angle for the entire progress ring

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)outerRingWidth":{"name":"outerRingWidth","abstract":"

    The width of the outer ring for the progres bar

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)outerRingColor":{"name":"outerRingColor","abstract":"

    The color for the outer ring

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C13outerCapStyleSo06CGLineE0Vvp":{"name":"outerCapStyle","abstract":"

    The style for the tip/cap of the outer ring

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)innerRingWidth":{"name":"innerRingWidth","abstract":"

    The width of the inner ring for the progres bar

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)innerRingColor":{"name":"innerRingColor","abstract":"

    The color of the inner ring for the progres bar

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)innerRingSpacing":{"name":"innerRingSpacing","abstract":"

    The spacing between the outer ring and inner ring

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C13innerCapStyleSo06CGLineE0Vvp":{"name":"innerCapStyle","abstract":"

    The style for the tip/cap of the inner ring

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)fontColor":{"name":"fontColor","abstract":"

    The text color for the value label field

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)font":{"name":"font","abstract":"

    The font to be used for the progress indicator.","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C11isAnimatingSbvp":{"name":"isAnimating","abstract":"

    This returns whether or not the ring is currently animating

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)isClockwise":{"name":"isClockwise","abstract":"

    The direction the circle is drawn in","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C27PropertyAnimationCompletiona":{"name":"PropertyAnimationCompletion","abstract":"

    Typealias for animateProperties(duration:animations:completion:) fucntion completion

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(cpy)layerClass":{"name":"layerClass","abstract":"

    Overrides the default layer with the custom UICircularRingLayer class

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(im)initWithFrame:":{"name":"init(frame:)","abstract":"

    Overriden public init to initialize the layer and view

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(im)initWithCoder:":{"name":"init(coder:)","abstract":"

    Overriden public init to initialize the layer and view

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(im)drawRect:":{"name":"draw(_:)","abstract":"

    Overriden because of custom layer drawing in UICircularRingLayer

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C17animateProperties8duration10animationsySd_yyXEtF":{"name":"animateProperties(duration:animations:)","abstract":"

    This function allows animation of the animatable properties of the UICircularRing.","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C17animateProperties8duration10animations10completionySd_yyXEyycSgtF":{"name":"animateProperties(duration:animations:completion:)","abstract":"

    This function allows animation of the animatable properties of the UICircularRing.","parent_name":"UICircularRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC8delegateAA0abC8Delegate_pSgXwvp":{"name":"delegate","abstract":"

    The delegate for the UICircularRing

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularProgressRing(py)value":{"name":"value","abstract":"

    The value property for the progress ring.

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC12currentValue12CoreGraphics7CGFloatVSgvp":{"name":"currentValue","abstract":"

    The current value of the progress ring

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularProgressRing(py)minValue":{"name":"minValue","abstract":"

    The minimum value for the progress ring. ex: (0) -> 100.

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularProgressRing(py)maxValue":{"name":"maxValue","abstract":"

    The maximum value for the progress ring. ex: 0 -> (100)

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC23animationTimingFunctionSo07CAMediaeF4Nameavp":{"name":"animationTimingFunction","abstract":"

    The type of animation function the ring view will use

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC14valueFormatterAA0abcE0Cvp":{"name":"valueFormatter","abstract":"

    The formatter responsible for formatting the","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC0B10Completiona":{"name":"ProgressCompletion","abstract":"

    Typealias for the startProgress(:) method closure

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC05startB02to8duration10completiony12CoreGraphics7CGFloatV_SdyycSgtF":{"name":"startProgress(to:duration:completion:)","abstract":"

    Sets the current value for the progress ring, calling this method while ring is","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC05pauseB0yyF":{"name":"pauseProgress()","abstract":"

    Pauses the currently running animation and halts all progress.

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC08continueB0yyF":{"name":"continueProgress()","abstract":"

    Continues the animation with its remaining time from where it left off before it was paused.","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC05resetB0yyF":{"name":"resetProgress()","abstract":"

    Resets the progress back to the minValue of the progress ring.","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html":{"name":"UICircularProgressRing","abstract":"

    Undocumented

    "},"Classes/UICircularRing.html":{"name":"UICircularRing","abstract":"

    UICircularRing

    "},"Classes/UICircularRingValueFormatter.html":{"name":"UICircularRingValueFormatter","abstract":"

    UICricularRingValueFormatter

    "},"Classes/UICircularTimerRingFormatter.html":{"name":"UICircularTimerRingFormatter","abstract":"

    UICircularTimerRingFormatter

    "},"Classes/UICircularProgressRingFormatter.html":{"name":"UICircularProgressRingFormatter","abstract":"

    UICircularProgressRingFormatter

    "},"Classes/UICircularTimerRing.html":{"name":"UICircularTimerRing","abstract":"

    Undocumented

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Enums.html":{"name":"Enumerations","abstract":"

    The following enumerations are available globally.

    "},"Protocols.html":{"name":"Protocols","abstract":"

    The following protocols are available globally.

    "},"Structs.html":{"name":"Structures","abstract":"

    The following structures are available globally.

    "}} \ No newline at end of file +{"Structs/UICircularProgressRingFormatter.html#/s:22UICircularProgressRing0abC9FormatterV14valueIndicatorSSvp":{"name":"valueIndicator","abstract":"

    The name of the value indicator the value label will","parent_name":"UICircularProgressRingFormatter"},"Structs/UICircularProgressRingFormatter.html#/s:22UICircularProgressRing0abC9FormatterV11rightToLeftSbvp":{"name":"rightToLeft","abstract":"

    A toggle for either placing the value indicator right or left to the value","parent_name":"UICircularProgressRingFormatter"},"Structs/UICircularProgressRingFormatter.html#/s:22UICircularProgressRing0abC9FormatterV17showFloatingPointSbvp":{"name":"showFloatingPoint","abstract":"

    A toggle for showing or hiding floating points from","parent_name":"UICircularProgressRingFormatter"},"Structs/UICircularProgressRingFormatter.html#/s:22UICircularProgressRing0abC9FormatterV13decimalPlacesSivp":{"name":"decimalPlaces","abstract":"

    The amount of decimal places to show in the value label

    ","parent_name":"UICircularProgressRingFormatter"},"Structs/UICircularProgressRingFormatter.html#/s:22UICircularProgressRing0abC9FormatterV6string3forSSSgyp_tF":{"name":"string(for:)","abstract":"

    formats the value of the progress ring using the given properties

    ","parent_name":"UICircularProgressRingFormatter"},"Structs/UICircularTimerRingFormatter.html#/s:22UICircularProgressRing0a5TimerC9FormatterV5unitsSo14NSCalendarUnitVvp":{"name":"units","abstract":"

    defines the units allowed to be used when converting string, by default [.minute, .second]

    ","parent_name":"UICircularTimerRingFormatter"},"Structs/UICircularTimerRingFormatter.html#/s:22UICircularProgressRing0a5TimerC9FormatterV5styleSo016NSDateComponentsE10UnitsStyleVvp":{"name":"style","abstract":"

    the style of the formatted string, by default .short

    ","parent_name":"UICircularTimerRingFormatter"},"Structs/UICircularTimerRingFormatter.html#/s:22UICircularProgressRing0a5TimerC9FormatterV6string3forSSSgyp_tF":{"name":"string(for:)","abstract":"

    formats the value of the ring using the date components formatter with given units/style

    ","parent_name":"UICircularTimerRingFormatter"},"Structs/UICircularRingGradientOptions.html#/s:22UICircularProgressRing0aC15GradientOptionsV7defaultACvpZ":{"name":"default","abstract":"

    a default styling option for the gradient style

    ","parent_name":"UICircularRingGradientOptions"},"Structs/UICircularRingGradientOptions.html#/s:22UICircularProgressRing0aC15GradientOptionsV13startPositionAA0acdG0Ovp":{"name":"startPosition","abstract":"

    the start location for the gradient

    ","parent_name":"UICircularRingGradientOptions"},"Structs/UICircularRingGradientOptions.html#/s:22UICircularProgressRing0aC15GradientOptionsV11endPositionAA0acdG0Ovp":{"name":"endPosition","abstract":"

    the end location for the gradient

    ","parent_name":"UICircularRingGradientOptions"},"Structs/UICircularRingGradientOptions.html#/s:22UICircularProgressRing0aC15GradientOptionsV6colorsSaySo7UIColorCGvp":{"name":"colors","abstract":"

    the colors to use in the gradient, the count of this list must match the count of colorLocations

    ","parent_name":"UICircularRingGradientOptions"},"Structs/UICircularRingGradientOptions.html#/s:22UICircularProgressRing0aC15GradientOptionsV14colorLocationsSay12CoreGraphics7CGFloatVGvp":{"name":"colorLocations","abstract":"

    the locations of where to place the colors, valid numbers are from 0.0 - 1.0

    ","parent_name":"UICircularRingGradientOptions"},"Structs/UICircularRingGradientOptions.html#/s:22UICircularProgressRing0aC15GradientOptionsV13startPosition03endG06colors14colorLocationsAcA0acdG0O_AISaySo7UIColorCGSay12CoreGraphics7CGFloatVGtcfc":{"name":"init(startPosition:endPosition:colors:colorLocations:)","abstract":"

    create a new UICircularRingGradientOptions

    ","parent_name":"UICircularRingGradientOptions"},"Structs/UICircularRingValueKnobStyle.html#/s:22UICircularProgressRing0aC14ValueKnobStyleV7defaultACvpZ":{"name":"default","abstract":"

    default implmementation of the knob style

    ","parent_name":"UICircularRingValueKnobStyle"},"Structs/UICircularRingValueKnobStyle.html#/s:22UICircularProgressRing0aC14ValueKnobStyleV4size12CoreGraphics7CGFloatVvp":{"name":"size","abstract":"

    the size of the knob

    ","parent_name":"UICircularRingValueKnobStyle"},"Structs/UICircularRingValueKnobStyle.html#/s:22UICircularProgressRing0aC14ValueKnobStyleV5colorSo7UIColorCvp":{"name":"color","abstract":"

    the color of the knob

    ","parent_name":"UICircularRingValueKnobStyle"},"Structs/UICircularRingValueKnobStyle.html#/s:22UICircularProgressRing0aC14ValueKnobStyleV10shadowBlur12CoreGraphics7CGFloatVvp":{"name":"shadowBlur","abstract":"

    the amount of blur to give the shadow

    ","parent_name":"UICircularRingValueKnobStyle"},"Structs/UICircularRingValueKnobStyle.html#/s:22UICircularProgressRing0aC14ValueKnobStyleV12shadowOffsetSo6CGSizeVvp":{"name":"shadowOffset","abstract":"

    the offset to give the shadow

    ","parent_name":"UICircularRingValueKnobStyle"},"Structs/UICircularRingValueKnobStyle.html#/s:22UICircularProgressRing0aC14ValueKnobStyleV11shadowColorSo7UIColorCvp":{"name":"shadowColor","abstract":"

    the color for the shadow

    ","parent_name":"UICircularRingValueKnobStyle"},"Structs/UICircularRingValueKnobStyle.html#/s:22UICircularProgressRing0aC14ValueKnobStyleV4size5color10shadowBlur0I6Offset0I5ColorAC12CoreGraphics7CGFloatV_So7UIColorCAKSo6CGSizeVAMtcfc":{"name":"init(size:color:shadowBlur:shadowOffset:shadowColor:)","abstract":"

    creates a new UICircularRingValueKnobStyle

    ","parent_name":"UICircularRingValueKnobStyle"},"Structs/UICircularRingValueKnobStyle.html":{"name":"UICircularRingValueKnobStyle","abstract":"

    UICircularRingValueKnobStyle

    "},"Structs/UICircularRingGradientOptions.html":{"name":"UICircularRingGradientOptions","abstract":"

    UICircularRingGradientOptions

    "},"Structs/UICircularTimerRingFormatter.html":{"name":"UICircularTimerRingFormatter","abstract":"

    UICircularTimerRingFormatter

    "},"Structs/UICircularProgressRingFormatter.html":{"name":"UICircularProgressRingFormatter","abstract":"

    UICircularProgressRingFormatter

    "},"Protocols/UICircularRingValueFormatter.html#/s:22UICircularProgressRing0aC14ValueFormatterP6string3forSSSgyp_tF":{"name":"string(for:)","abstract":"

    returns a string for the given object

    ","parent_name":"UICircularRingValueFormatter"},"Protocols/UICircularProgressRingDelegate.html#/s:22UICircularProgressRing0abC8DelegateP09didFinishB03foryA2AC_tF":{"name":"didFinishProgress(for:)","abstract":"

    Called when progress ring is done animating for current value

    ","parent_name":"UICircularProgressRingDelegate"},"Protocols/UICircularProgressRingDelegate.html#/s:22UICircularProgressRing0abC8DelegateP08didPauseB03foryA2AC_tF":{"name":"didPauseProgress(for:)","abstract":"

    Called when progress has paused

    ","parent_name":"UICircularProgressRingDelegate"},"Protocols/UICircularProgressRingDelegate.html#/s:22UICircularProgressRing0abC8DelegateP011didContinueB03foryA2AC_tF":{"name":"didContinueProgress(for:)","abstract":"

    Called when the progress has continued after a pause

    ","parent_name":"UICircularProgressRingDelegate"},"Protocols/UICircularProgressRingDelegate.html#/s:22UICircularProgressRing0abC8DelegateP09didUpdateB5Value3for2toyA2AC_12CoreGraphics7CGFloatVtF":{"name":"didUpdateProgressValue(for:to:)","abstract":"

    This method is called whenever the value is updated, this means during animation this method will be called in real time.","parent_name":"UICircularProgressRingDelegate"},"Protocols/UICircularProgressRingDelegate.html#/s:22UICircularProgressRing0abC8DelegateP16willDisplayLabel3for_yA2AC_So7UILabelCtF":{"name":"willDisplayLabel(for:_:)","abstract":"

    This method is called whenever the label is about to be drawn.","parent_name":"UICircularProgressRingDelegate"},"Protocols/UICircularProgressRingDelegate.html":{"name":"UICircularProgressRingDelegate","abstract":"

    This is the protocol declaration for the UICircularRing delegate property

    "},"Protocols/UICircularRingValueFormatter.html":{"name":"UICircularRingValueFormatter","abstract":"

    UICircularRingValueFormatter

    "},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO3topyA2CmF":{"name":"top","abstract":"

    Gradient positioned at the top

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO6bottomyA2CmF":{"name":"bottom","abstract":"

    Gradient positioned at the bottom

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO4leftyA2CmF":{"name":"left","abstract":"

    Gradient positioned to the left

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO5rightyA2CmF":{"name":"right","abstract":"

    Gradient positioned to the right

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO7topLeftyA2CmF":{"name":"topLeft","abstract":"

    Gradient positioned in the top left corner

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO8topRightyA2CmF":{"name":"topRight","abstract":"

    Gradient positioned in the top right corner

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO10bottomLeftyA2CmF":{"name":"bottomLeft","abstract":"

    Gradient positioned in the bottom left corner

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO11bottomRightyA2CmF":{"name":"bottomRight","abstract":"

    Gradient positioned in the bottom right corner

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingStyle.html#/s:22UICircularProgressRing0aC5StyleO6insideyA2CmF":{"name":"inside","abstract":"

    inner ring is inside the circle

    ","parent_name":"UICircularRingStyle"},"Enums/UICircularRingStyle.html#/s:22UICircularProgressRing0aC5StyleO5ontopyA2CmF":{"name":"ontop","abstract":"

    inner ring is placed ontop of the outer ring

    ","parent_name":"UICircularRingStyle"},"Enums/UICircularRingStyle.html#/s:22UICircularProgressRing0aC5StyleO6dashedyACSay12CoreGraphics7CGFloatVG_tcACmF":{"name":"dashed(pattern:)","abstract":"

    outer ring is dashed, the pattern list is how the dashes should appear

    ","parent_name":"UICircularRingStyle"},"Enums/UICircularRingStyle.html#/s:22UICircularProgressRing0aC5StyleO6dottedyA2CmF":{"name":"dotted","abstract":"

    outer ring is dotted

    ","parent_name":"UICircularRingStyle"},"Enums/UICircularRingStyle.html#/s:22UICircularProgressRing0aC5StyleO8borderedyAC12CoreGraphics7CGFloatV_So7UIColorCtcACmF":{"name":"bordered(width:color:)","abstract":"

    inner ring is placed ontop of the outer ring and outer ring has border

    ","parent_name":"UICircularRingStyle"},"Enums/UICircularRingStyle.html":{"name":"UICircularRingStyle","abstract":"

    UICircularRingStyle

    "},"Enums/UICircularRingGradientPosition.html":{"name":"UICircularRingGradientPosition","abstract":"

    UICircularRingGradientPosition

    "},"Classes/UICircularTimerRing/State.html#/s:22UICircularProgressRing0a5TimerC0C5StateO8finishedyA2EmF":{"name":"finished","abstract":"

    the timer has finished

    ","parent_name":"State"},"Classes/UICircularTimerRing/State.html#/s:22UICircularProgressRing0a5TimerC0C5StateO9continuedyAESdSg_tcAEmF":{"name":"continued(elapsedTime:)","abstract":"

    the timer was continued called continueTimer

    ","parent_name":"State"},"Classes/UICircularTimerRing/State.html#/s:22UICircularProgressRing0a5TimerC0C5StateO6pausedyAESdSg_tcAEmF":{"name":"paused(elpasedTime:)","abstract":"

    the timer was paused called pauseTimer

    ","parent_name":"State"},"Classes/UICircularTimerRing.html#/s:22UICircularProgressRing0a5TimerC0C14valueFormatterAA0ac5ValueF0_pvp":{"name":"valueFormatter","abstract":"

    The formatter used when formatting the value into a string for the ring.

    ","parent_name":"UICircularTimerRing"},"Classes/UICircularTimerRing.html#/s:22UICircularProgressRing0a5TimerC0C0D7Handlera":{"name":"TimerHandler","abstract":"

    The handler for the timer.

    ","parent_name":"UICircularTimerRing"},"Classes/UICircularTimerRing.html#/s:22UICircularProgressRing0a5TimerC0C05startD02to7handlerySd_yAC5StateOcSgtF":{"name":"startTimer(to:handler:)","abstract":"

    Starts the timer until the given time is elapsed.

    ","parent_name":"UICircularTimerRing"},"Classes/UICircularTimerRing.html#/s:22UICircularProgressRing0a5TimerC0C05pauseD0yyF":{"name":"pauseTimer()","abstract":"

    Pauses the timer.

    ","parent_name":"UICircularTimerRing"},"Classes/UICircularTimerRing.html#/s:22UICircularProgressRing0a5TimerC0C08continueD0yyF":{"name":"continueTimer()","abstract":"

    Continues the timer from a previously paused time.

    ","parent_name":"UICircularTimerRing"},"Classes/UICircularTimerRing.html#/s:22UICircularProgressRing0a5TimerC0C05resetD0yyF":{"name":"resetTimer()","abstract":"

    Resets the timer, this means the time is reset and","parent_name":"UICircularTimerRing"},"Classes/UICircularTimerRing/State.html":{"name":"State","abstract":"

    state of the timer ring, used in handler

    ","parent_name":"UICircularTimerRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)fullCircle":{"name":"fullCircle","abstract":"

    Whether or not the progress ring should be a full circle.

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C5styleAA0aC5StyleOvp":{"name":"style","abstract":"

    The style of the progress ring.

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C15gradientOptionsAA0ac8GradientE0VSgvp":{"name":"gradientOptions","abstract":"

    The options for a gradient ring.

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)shouldShowValueText":{"name":"shouldShowValueText","abstract":"

    A toggle for showing or hiding the value label.","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C14valueKnobStyleAA0ac5ValueeF0VSgvp":{"name":"valueKnobStyle","abstract":"

    Style for the value knob, default is nil.

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)startAngle":{"name":"startAngle","abstract":"

    The start angle for the entire progress ring view.

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)endAngle":{"name":"endAngle","abstract":"

    The end angle for the entire progress ring

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)outerRingWidth":{"name":"outerRingWidth","abstract":"

    The width of the outer ring for the progres bar

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)outerRingColor":{"name":"outerRingColor","abstract":"

    The color for the outer ring

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C13outerCapStyleSo06CGLineE0Vvp":{"name":"outerCapStyle","abstract":"

    The style for the tip/cap of the outer ring

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)innerRingWidth":{"name":"innerRingWidth","abstract":"

    The width of the inner ring for the progres bar

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)innerRingColor":{"name":"innerRingColor","abstract":"

    The color of the inner ring for the progres bar

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)innerRingSpacing":{"name":"innerRingSpacing","abstract":"

    The spacing between the outer ring and inner ring

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C13innerCapStyleSo06CGLineE0Vvp":{"name":"innerCapStyle","abstract":"

    The style for the tip/cap of the inner ring

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)fontColor":{"name":"fontColor","abstract":"

    The text color for the value label field

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)font":{"name":"font","abstract":"

    The font to be used for the progress indicator.","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C11isAnimatingSbvp":{"name":"isAnimating","abstract":"

    This returns whether or not the ring is currently animating

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)isClockwise":{"name":"isClockwise","abstract":"

    The direction the circle is drawn in","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C27PropertyAnimationCompletiona":{"name":"PropertyAnimationCompletion","abstract":"

    Typealias for animateProperties(duration:animations:completion:) fucntion completion

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(cpy)layerClass":{"name":"layerClass","abstract":"

    Overrides the default layer with the custom UICircularRingLayer class

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(im)initWithFrame:":{"name":"init(frame:)","abstract":"

    Overriden public init to initialize the layer and view

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(im)initWithCoder:":{"name":"init(coder:)","abstract":"

    Overriden public init to initialize the layer and view

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(im)drawRect:":{"name":"draw(_:)","abstract":"

    Overriden because of custom layer drawing in UICircularRingLayer

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C17animateProperties8duration10animationsySd_yyXEtF":{"name":"animateProperties(duration:animations:)","abstract":"

    This function allows animation of the animatable properties of the UICircularRing.","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C17animateProperties8duration10animations10completionySd_yyXEyycSgtF":{"name":"animateProperties(duration:animations:completion:)","abstract":"

    This function allows animation of the animatable properties of the UICircularRing.","parent_name":"UICircularRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC8delegateAA0abC8Delegate_pSgXwvp":{"name":"delegate","abstract":"

    The delegate for the UICircularRing

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularProgressRing(py)value":{"name":"value","abstract":"

    The value property for the progress ring.

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC12currentValue12CoreGraphics7CGFloatVSgvp":{"name":"currentValue","abstract":"

    The current value of the progress ring

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularProgressRing(py)minValue":{"name":"minValue","abstract":"

    The minimum value for the progress ring. ex: (0) -> 100.

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularProgressRing(py)maxValue":{"name":"maxValue","abstract":"

    The maximum value for the progress ring. ex: 0 -> (100)

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC23animationTimingFunctionSo07CAMediaeF4Nameavp":{"name":"animationTimingFunction","abstract":"

    The type of animation function the ring view will use

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC14valueFormatterAA0ac5ValueE0_pvp":{"name":"valueFormatter","abstract":"

    The formatter responsible for formatting the","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC0B10Completiona":{"name":"ProgressCompletion","abstract":"

    Typealias for the startProgress(:) method closure

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC05startB02to8duration10completiony12CoreGraphics7CGFloatV_SdyycSgtF":{"name":"startProgress(to:duration:completion:)","abstract":"

    Sets the current value for the progress ring, calling this method while ring is","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC05pauseB0yyF":{"name":"pauseProgress()","abstract":"

    Pauses the currently running animation and halts all progress.

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC08continueB0yyF":{"name":"continueProgress()","abstract":"

    Continues the animation with its remaining time from where it left off before it was paused.","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC05resetB0yyF":{"name":"resetProgress()","abstract":"

    Resets the progress back to the minValue of the progress ring.","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html":{"name":"UICircularProgressRing","abstract":"

    Undocumented

    "},"Classes/UICircularRing.html":{"name":"UICircularRing","abstract":"

    UICircularRing

    "},"Classes/UICircularTimerRing.html":{"name":"UICircularTimerRing","abstract":"

    Undocumented

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Enums.html":{"name":"Enumerations","abstract":"

    The following enumerations are available globally.

    "},"Protocols.html":{"name":"Protocols","abstract":"

    The following protocols are available globally.

    "},"Structs.html":{"name":"Structures","abstract":"

    The following structures are available globally.

    "}} \ No newline at end of file diff --git a/docs/docsets/UICircularProgressRing.docset/Contents/Resources/docSet.dsidx b/docs/docsets/UICircularProgressRing.docset/Contents/Resources/docSet.dsidx index 00596b009dd1bceada0761231eb350b1bc514a7d..cba9f4919069ac52e27285f7fcbba087da261b68 100644 GIT binary patch delta 5213 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 delta 4828 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 Yp6aQd>ZzXU+4%GS0ezcz=>RYX0K(p&JOBUy literal 67571 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 E0O41=L;wH) diff --git a/docs/index.html b/docs/index.html index f93b1b92..b6f00235 100644 --- a/docs/index.html +++ b/docs/index.html @@ -13,7 +13,7 @@

    @@ -33,24 +33,15 @@ - - - + @@ -103,7 +103,7 @@

    Authors

    diff --git a/docs/search.json b/docs/search.json index 19f9edd4..3021e1ac 100644 --- a/docs/search.json +++ b/docs/search.json @@ -1 +1 @@ -{"Structs/UICircularGradientOptions.html#/s:22UICircularProgressRing0A15GradientOptionsV7defaultACvpZ":{"name":"default","abstract":"

    a default styling option for the gradient style

    ","parent_name":"UICircularGradientOptions"},"Structs/UICircularGradientOptions.html#/s:22UICircularProgressRing0A15GradientOptionsV13startPositionAA0acdG0Ovp":{"name":"startPosition","abstract":"

    the start location for the gradient

    ","parent_name":"UICircularGradientOptions"},"Structs/UICircularGradientOptions.html#/s:22UICircularProgressRing0A15GradientOptionsV11endPositionAA0acdG0Ovp":{"name":"endPosition","abstract":"

    the end location for the gradient

    ","parent_name":"UICircularGradientOptions"},"Structs/UICircularGradientOptions.html#/s:22UICircularProgressRing0A15GradientOptionsV6colorsSaySo7UIColorCGvp":{"name":"colors","abstract":"

    the colors to use in the gradient, the count of this list must match the count of colorLocations

    ","parent_name":"UICircularGradientOptions"},"Structs/UICircularGradientOptions.html#/s:22UICircularProgressRing0A15GradientOptionsV14colorLocationsSay12CoreGraphics7CGFloatVGvp":{"name":"colorLocations","abstract":"

    the locations of where to place the colors, valid numbers are from 0.0 - 1.0

    ","parent_name":"UICircularGradientOptions"},"Structs/UICircularGradientOptions.html#/s:22UICircularProgressRing0A15GradientOptionsV13startPosition03endG06colors14colorLocationsAcA0acdG0O_AISaySo7UIColorCGSay12CoreGraphics7CGFloatVGtcfc":{"name":"init(startPosition:endPosition:colors:colorLocations:)","abstract":"

    create a new UICircularGradientOptions

    ","parent_name":"UICircularGradientOptions"},"Structs/UICircularRingValueKnobStyle.html#/s:22UICircularProgressRing0aC14ValueKnobStyleV7defaultACvpZ":{"name":"default","abstract":"

    default implmementation of the knob style

    ","parent_name":"UICircularRingValueKnobStyle"},"Structs/UICircularRingValueKnobStyle.html#/s:22UICircularProgressRing0aC14ValueKnobStyleV4size12CoreGraphics7CGFloatVvp":{"name":"size","abstract":"

    the size of the knob

    ","parent_name":"UICircularRingValueKnobStyle"},"Structs/UICircularRingValueKnobStyle.html#/s:22UICircularProgressRing0aC14ValueKnobStyleV5colorSo7UIColorCvp":{"name":"color","abstract":"

    the color of the knob

    ","parent_name":"UICircularRingValueKnobStyle"},"Structs/UICircularRingValueKnobStyle.html#/s:22UICircularProgressRing0aC14ValueKnobStyleV10shadowBlur12CoreGraphics7CGFloatVvp":{"name":"shadowBlur","abstract":"

    the amount of blur to give the shadow

    ","parent_name":"UICircularRingValueKnobStyle"},"Structs/UICircularRingValueKnobStyle.html#/s:22UICircularProgressRing0aC14ValueKnobStyleV12shadowOffsetSo6CGSizeVvp":{"name":"shadowOffset","abstract":"

    the offset to give the shadow

    ","parent_name":"UICircularRingValueKnobStyle"},"Structs/UICircularRingValueKnobStyle.html#/s:22UICircularProgressRing0aC14ValueKnobStyleV11shadowColorSo7UIColorCvp":{"name":"shadowColor","abstract":"

    the color for the shadow

    ","parent_name":"UICircularRingValueKnobStyle"},"Structs/UICircularRingValueKnobStyle.html#/s:22UICircularProgressRing0aC14ValueKnobStyleV4size5color10shadowBlur0I6Offset0I5ColorAC12CoreGraphics7CGFloatV_So7UIColorCAKSo6CGSizeVAMtcfc":{"name":"init(size:color:shadowBlur:shadowOffset:shadowColor:)","abstract":"

    creates a new UICircularRingValueKnobStyle

    ","parent_name":"UICircularRingValueKnobStyle"},"Structs/UICircularRingValueKnobStyle.html":{"name":"UICircularRingValueKnobStyle","abstract":"

    UICircularRingValueKnobStyle

    "},"Structs/UICircularGradientOptions.html":{"name":"UICircularGradientOptions","abstract":"

    UICircularGradientOptions

    "},"Protocols/UICircularProgressRingDelegate.html#/s:22UICircularProgressRing0abC8DelegateP09didFinishB03foryA2AC_tF":{"name":"didFinishProgress(for:)","abstract":"

    Called when progress ring is done animating for current value

    ","parent_name":"UICircularProgressRingDelegate"},"Protocols/UICircularProgressRingDelegate.html#/s:22UICircularProgressRing0abC8DelegateP08didPauseB03foryA2AC_tF":{"name":"didPauseProgress(for:)","abstract":"

    Called when progress has paused

    ","parent_name":"UICircularProgressRingDelegate"},"Protocols/UICircularProgressRingDelegate.html#/s:22UICircularProgressRing0abC8DelegateP011didContinueB03foryA2AC_tF":{"name":"didContinueProgress(for:)","abstract":"

    Called when the progress has continued after a pause

    ","parent_name":"UICircularProgressRingDelegate"},"Protocols/UICircularProgressRingDelegate.html#/s:22UICircularProgressRing0abC8DelegateP09didUpdateB5Value3for2toyA2AC_12CoreGraphics7CGFloatVtF":{"name":"didUpdateProgressValue(for:to:)","abstract":"

    This method is called whenever the value is updated, this means during animation this method will be called in real time.","parent_name":"UICircularProgressRingDelegate"},"Protocols/UICircularProgressRingDelegate.html#/s:22UICircularProgressRing0abC8DelegateP16willDisplayLabel3for_yA2AC_So7UILabelCtF":{"name":"willDisplayLabel(for:_:)","abstract":"

    This method is called whenever the label is about to be drawn.","parent_name":"UICircularProgressRingDelegate"},"Protocols/UICircularProgressRingDelegate.html":{"name":"UICircularProgressRingDelegate","abstract":"

    This is the protocol declaration for the UICircularRing delegate property

    "},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO3topyA2CmF":{"name":"top","abstract":"

    Gradient positioned at the top

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO6bottomyA2CmF":{"name":"bottom","abstract":"

    Gradient positioned at the bottom

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO4leftyA2CmF":{"name":"left","abstract":"

    Gradient positioned to the left

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO5rightyA2CmF":{"name":"right","abstract":"

    Gradient positioned to the right

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO7topLeftyA2CmF":{"name":"topLeft","abstract":"

    Gradient positioned in the top left corner

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO8topRightyA2CmF":{"name":"topRight","abstract":"

    Gradient positioned in the top right corner

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO10bottomLeftyA2CmF":{"name":"bottomLeft","abstract":"

    Gradient positioned in the bottom left corner

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO11bottomRightyA2CmF":{"name":"bottomRight","abstract":"

    Gradient positioned in the bottom right corner

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingStyle.html#/s:22UICircularProgressRing0aC5StyleO6insideyA2CmF":{"name":"inside","abstract":"

    inner ring is inside the circle

    ","parent_name":"UICircularRingStyle"},"Enums/UICircularRingStyle.html#/s:22UICircularProgressRing0aC5StyleO5ontopyA2CmF":{"name":"ontop","abstract":"

    inner ring is placed ontop of the outer ring

    ","parent_name":"UICircularRingStyle"},"Enums/UICircularRingStyle.html#/s:22UICircularProgressRing0aC5StyleO6dashedyACSay12CoreGraphics7CGFloatVG_tcACmF":{"name":"dashed(pattern:)","abstract":"

    outer ring is dashed, the pattern list is how the dashes should appear

    ","parent_name":"UICircularRingStyle"},"Enums/UICircularRingStyle.html#/s:22UICircularProgressRing0aC5StyleO6dottedyA2CmF":{"name":"dotted","abstract":"

    outer ring is dotted

    ","parent_name":"UICircularRingStyle"},"Enums/UICircularRingStyle.html#/s:22UICircularProgressRing0aC5StyleO8gradientyAcA0A15GradientOptionsV_tcACmF":{"name":"gradient(options:)","abstract":"

    inner ring is placed ontop of the outer ring and it has a gradient, look at UICircularGradientOptions

    ","parent_name":"UICircularRingStyle"},"Enums/UICircularRingStyle.html#/s:22UICircularProgressRing0aC5StyleO8borderedyAC12CoreGraphics7CGFloatV_So7UIColorCtcACmF":{"name":"bordered(width:color:)","abstract":"

    inner ring is placed ontop of the outer ring and outer ring has border

    ","parent_name":"UICircularRingStyle"},"Enums/UICircularRingStyle.html":{"name":"UICircularRingStyle","abstract":"

    UICircularRingStyle

    "},"Enums/UICircularRingGradientPosition.html":{"name":"UICircularRingGradientPosition","abstract":"

    UICircularRingGradientPosition

    "},"Classes/UICircularTimerRing/State.html#/s:22UICircularProgressRing0a5TimerC0C5StateO8finishedyA2EmF":{"name":"finished","abstract":"

    the timer has finished

    ","parent_name":"State"},"Classes/UICircularTimerRing/State.html#/s:22UICircularProgressRing0a5TimerC0C5StateO9continuedyAESdSg_tcAEmF":{"name":"continued(elapsedTime:)","abstract":"

    the timer was continued called continueTimer

    ","parent_name":"State"},"Classes/UICircularTimerRing/State.html#/s:22UICircularProgressRing0a5TimerC0C5StateO6pausedyAESdSg_tcAEmF":{"name":"paused(elpasedTime:)","abstract":"

    the timer was paused called pauseTimer

    ","parent_name":"State"},"Classes/UICircularTimerRing.html#/s:22UICircularProgressRing0a5TimerC0C14valueFormatterAA0adcF0Cvp":{"name":"valueFormatter","abstract":"

    The formatter used when formatting the value into a string for the ring.

    ","parent_name":"UICircularTimerRing"},"Classes/UICircularTimerRing.html#/s:22UICircularProgressRing0a5TimerC0C0D7Handlera":{"name":"TimerHandler","abstract":"

    The handler for the timer.

    ","parent_name":"UICircularTimerRing"},"Classes/UICircularTimerRing.html#/s:22UICircularProgressRing0a5TimerC0C05startD02to7handlerySd_yAC5StateOcSgtF":{"name":"startTimer(to:handler:)","abstract":"

    Starts the timer until the given time is elapsed.

    ","parent_name":"UICircularTimerRing"},"Classes/UICircularTimerRing.html#/s:22UICircularProgressRing0a5TimerC0C05pauseD0yyF":{"name":"pauseTimer()","abstract":"

    Pauses the timer.

    ","parent_name":"UICircularTimerRing"},"Classes/UICircularTimerRing.html#/s:22UICircularProgressRing0a5TimerC0C08continueD0yyF":{"name":"continueTimer()","abstract":"

    Continues the timer from a previously paused time.

    ","parent_name":"UICircularTimerRing"},"Classes/UICircularTimerRing.html#/s:22UICircularProgressRing0a5TimerC0C05resetD0yyF":{"name":"resetTimer()","abstract":"

    Resets the timer, this means the time is reset and","parent_name":"UICircularTimerRing"},"Classes/UICircularTimerRing/State.html":{"name":"State","abstract":"

    state of the timer ring, used in handler

    ","parent_name":"UICircularTimerRing"},"Classes/UICircularProgressRingFormatter.html#/s:22UICircularProgressRing0abC9FormatterC14valueIndicatorSSvp":{"name":"valueIndicator","abstract":"

    The name of the value indicator the value label will","parent_name":"UICircularProgressRingFormatter"},"Classes/UICircularProgressRingFormatter.html#/s:22UICircularProgressRing0abC9FormatterC11rightToLeftSbvp":{"name":"rightToLeft","abstract":"

    A toggle for either placing the value indicator right or left to the value","parent_name":"UICircularProgressRingFormatter"},"Classes/UICircularProgressRingFormatter.html#/s:22UICircularProgressRing0abC9FormatterC17showFloatingPointSbvp":{"name":"showFloatingPoint","abstract":"

    A toggle for showing or hiding floating points from","parent_name":"UICircularProgressRingFormatter"},"Classes/UICircularProgressRingFormatter.html#/s:22UICircularProgressRing0abC9FormatterC13decimalPlacesSivp":{"name":"decimalPlaces","abstract":"

    The amount of decimal places to show in the value label

    ","parent_name":"UICircularProgressRingFormatter"},"Classes/UICircularProgressRingFormatter.html#/s:22UICircularProgressRing0abC9FormatterC6string8forValueSSSg12CoreGraphics7CGFloatV_tF":{"name":"string(forValue:)","abstract":"

    formats the value of the progress ring using the given properties

    ","parent_name":"UICircularProgressRingFormatter"},"Classes/UICircularTimerRingFormatter.html#/s:22UICircularProgressRing0a5TimerC9FormatterC5unitsSo14NSCalendarUnitVvp":{"name":"units","abstract":"

    defines the units allowed to be used when converting string, by default [.minute, .second]

    ","parent_name":"UICircularTimerRingFormatter"},"Classes/UICircularTimerRingFormatter.html#/s:22UICircularProgressRing0a5TimerC9FormatterC5styleSo016NSDateComponentsE10UnitsStyleVvp":{"name":"style","abstract":"

    the style of the formatted string, by default .short

    ","parent_name":"UICircularTimerRingFormatter"},"Classes/UICircularTimerRingFormatter.html#/s:22UICircularProgressRing0a5TimerC9FormatterC6string8forValueSSSg12CoreGraphics7CGFloatV_tF":{"name":"string(forValue:)","abstract":"

    formats the value of the ring using the date components formatter with given units/style

    ","parent_name":"UICircularTimerRingFormatter"},"Classes/UICircularRingValueFormatter.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRingValueFormatter(im)stringForObjectValue:":{"name":"string(for:)","abstract":"

    returns result of string(forValue:)

    ","parent_name":"UICircularRingValueFormatter"},"Classes/UICircularRingValueFormatter.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRingValueFormatter(im)getObjectValue:forString:errorDescription:":{"name":"getObjectValue(_:for:errorDescription:)","abstract":"

    always returns false

    ","parent_name":"UICircularRingValueFormatter"},"Classes/UICircularRingValueFormatter.html#/s:22UICircularProgressRing0aC14ValueFormatterC6string03forD0SSSg12CoreGraphics7CGFloatV_tF":{"name":"string(forValue:)","abstract":"

    not implemented

    ","parent_name":"UICircularRingValueFormatter"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)fullCircle":{"name":"fullCircle","abstract":"

    Whether or not the progress ring should be a full circle.

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C5styleAA0aC5StyleOvp":{"name":"style","abstract":"

    The style of the progress ring.

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)shouldShowValueText":{"name":"shouldShowValueText","abstract":"

    A toggle for showing or hiding the value label.","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C14valueKnobStyleAA0ac5ValueeF0VSgvp":{"name":"valueKnobStyle","abstract":"

    Style for the value knob, default is nil.

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)startAngle":{"name":"startAngle","abstract":"

    The start angle for the entire progress ring view.

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)endAngle":{"name":"endAngle","abstract":"

    The end angle for the entire progress ring

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)outerRingWidth":{"name":"outerRingWidth","abstract":"

    The width of the outer ring for the progres bar

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)outerRingColor":{"name":"outerRingColor","abstract":"

    The color for the outer ring

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C13outerCapStyleSo06CGLineE0Vvp":{"name":"outerCapStyle","abstract":"

    The style for the tip/cap of the outer ring

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)innerRingWidth":{"name":"innerRingWidth","abstract":"

    The width of the inner ring for the progres bar

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)innerRingColor":{"name":"innerRingColor","abstract":"

    The color of the inner ring for the progres bar

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)innerRingSpacing":{"name":"innerRingSpacing","abstract":"

    The spacing between the outer ring and inner ring

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C13innerCapStyleSo06CGLineE0Vvp":{"name":"innerCapStyle","abstract":"

    The style for the tip/cap of the inner ring

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)fontColor":{"name":"fontColor","abstract":"

    The text color for the value label field

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)font":{"name":"font","abstract":"

    The font to be used for the progress indicator.","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C11isAnimatingSbvp":{"name":"isAnimating","abstract":"

    This returns whether or not the ring is currently animating

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)isClockwise":{"name":"isClockwise","abstract":"

    The direction the circle is drawn in","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C27PropertyAnimationCompletiona":{"name":"PropertyAnimationCompletion","abstract":"

    Typealias for animateProperties(duration:animations:completion:) fucntion completion

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(cpy)layerClass":{"name":"layerClass","abstract":"

    Overrides the default layer with the custom UICircularRingLayer class

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(im)initWithFrame:":{"name":"init(frame:)","abstract":"

    Overriden public init to initialize the layer and view

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(im)initWithCoder:":{"name":"init(coder:)","abstract":"

    Overriden public init to initialize the layer and view

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(im)drawRect:":{"name":"draw(_:)","abstract":"

    Overriden because of custom layer drawing in UICircularRingLayer

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C17animateProperties8duration10animationsySd_yyXEtF":{"name":"animateProperties(duration:animations:)","abstract":"

    This function allows animation of the animatable properties of the UICircularRing.","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C17animateProperties8duration10animations10completionySd_yyXEyycSgtF":{"name":"animateProperties(duration:animations:completion:)","abstract":"

    This function allows animation of the animatable properties of the UICircularRing.","parent_name":"UICircularRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC8delegateAA0abC8Delegate_pSgXwvp":{"name":"delegate","abstract":"

    The delegate for the UICircularRing

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularProgressRing(py)value":{"name":"value","abstract":"

    The value property for the progress ring.

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC12currentValue12CoreGraphics7CGFloatVSgvp":{"name":"currentValue","abstract":"

    The current value of the progress ring

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularProgressRing(py)minValue":{"name":"minValue","abstract":"

    The minimum value for the progress ring. ex: (0) -> 100.

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularProgressRing(py)maxValue":{"name":"maxValue","abstract":"

    The maximum value for the progress ring. ex: 0 -> (100)

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC23animationTimingFunctionSo07CAMediaeF4Nameavp":{"name":"animationTimingFunction","abstract":"

    The type of animation function the ring view will use

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC14valueFormatterAA0abcE0Cvp":{"name":"valueFormatter","abstract":"

    The formatter responsible for formatting the","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC0B10Completiona":{"name":"ProgressCompletion","abstract":"

    Typealias for the startProgress(:) method closure

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC05startB02to8duration10completiony12CoreGraphics7CGFloatV_SdyycSgtF":{"name":"startProgress(to:duration:completion:)","abstract":"

    Sets the current value for the progress ring, calling this method while ring is","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC05pauseB0yyF":{"name":"pauseProgress()","abstract":"

    Pauses the currently running animation and halts all progress.

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC08continueB0yyF":{"name":"continueProgress()","abstract":"

    Continues the animation with its remaining time from where it left off before it was paused.","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC05resetB0yyF":{"name":"resetProgress()","abstract":"

    Resets the progress back to the minValue of the progress ring.","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html":{"name":"UICircularProgressRing","abstract":"

    Undocumented

    "},"Classes/UICircularRing.html":{"name":"UICircularRing","abstract":"

    UICircularRing

    "},"Classes/UICircularRingValueFormatter.html":{"name":"UICircularRingValueFormatter","abstract":"

    UICricularRingValueFormatter

    "},"Classes/UICircularTimerRingFormatter.html":{"name":"UICircularTimerRingFormatter","abstract":"

    UICircularTimerRingFormatter

    "},"Classes/UICircularProgressRingFormatter.html":{"name":"UICircularProgressRingFormatter","abstract":"

    UICircularProgressRingFormatter

    "},"Classes/UICircularTimerRing.html":{"name":"UICircularTimerRing","abstract":"

    Undocumented

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Enums.html":{"name":"Enumerations","abstract":"

    The following enumerations are available globally.

    "},"Protocols.html":{"name":"Protocols","abstract":"

    The following protocols are available globally.

    "},"Structs.html":{"name":"Structures","abstract":"

    The following structures are available globally.

    "}} \ No newline at end of file +{"Structs/UICircularProgressRingFormatter.html#/s:22UICircularProgressRing0abC9FormatterV14valueIndicatorSSvp":{"name":"valueIndicator","abstract":"

    The name of the value indicator the value label will","parent_name":"UICircularProgressRingFormatter"},"Structs/UICircularProgressRingFormatter.html#/s:22UICircularProgressRing0abC9FormatterV11rightToLeftSbvp":{"name":"rightToLeft","abstract":"

    A toggle for either placing the value indicator right or left to the value","parent_name":"UICircularProgressRingFormatter"},"Structs/UICircularProgressRingFormatter.html#/s:22UICircularProgressRing0abC9FormatterV17showFloatingPointSbvp":{"name":"showFloatingPoint","abstract":"

    A toggle for showing or hiding floating points from","parent_name":"UICircularProgressRingFormatter"},"Structs/UICircularProgressRingFormatter.html#/s:22UICircularProgressRing0abC9FormatterV13decimalPlacesSivp":{"name":"decimalPlaces","abstract":"

    The amount of decimal places to show in the value label

    ","parent_name":"UICircularProgressRingFormatter"},"Structs/UICircularProgressRingFormatter.html#/s:22UICircularProgressRing0abC9FormatterV6string3forSSSgyp_tF":{"name":"string(for:)","abstract":"

    formats the value of the progress ring using the given properties

    ","parent_name":"UICircularProgressRingFormatter"},"Structs/UICircularTimerRingFormatter.html#/s:22UICircularProgressRing0a5TimerC9FormatterV5unitsSo14NSCalendarUnitVvp":{"name":"units","abstract":"

    defines the units allowed to be used when converting string, by default [.minute, .second]

    ","parent_name":"UICircularTimerRingFormatter"},"Structs/UICircularTimerRingFormatter.html#/s:22UICircularProgressRing0a5TimerC9FormatterV5styleSo016NSDateComponentsE10UnitsStyleVvp":{"name":"style","abstract":"

    the style of the formatted string, by default .short

    ","parent_name":"UICircularTimerRingFormatter"},"Structs/UICircularTimerRingFormatter.html#/s:22UICircularProgressRing0a5TimerC9FormatterV6string3forSSSgyp_tF":{"name":"string(for:)","abstract":"

    formats the value of the ring using the date components formatter with given units/style

    ","parent_name":"UICircularTimerRingFormatter"},"Structs/UICircularRingGradientOptions.html#/s:22UICircularProgressRing0aC15GradientOptionsV7defaultACvpZ":{"name":"default","abstract":"

    a default styling option for the gradient style

    ","parent_name":"UICircularRingGradientOptions"},"Structs/UICircularRingGradientOptions.html#/s:22UICircularProgressRing0aC15GradientOptionsV13startPositionAA0acdG0Ovp":{"name":"startPosition","abstract":"

    the start location for the gradient

    ","parent_name":"UICircularRingGradientOptions"},"Structs/UICircularRingGradientOptions.html#/s:22UICircularProgressRing0aC15GradientOptionsV11endPositionAA0acdG0Ovp":{"name":"endPosition","abstract":"

    the end location for the gradient

    ","parent_name":"UICircularRingGradientOptions"},"Structs/UICircularRingGradientOptions.html#/s:22UICircularProgressRing0aC15GradientOptionsV6colorsSaySo7UIColorCGvp":{"name":"colors","abstract":"

    the colors to use in the gradient, the count of this list must match the count of colorLocations

    ","parent_name":"UICircularRingGradientOptions"},"Structs/UICircularRingGradientOptions.html#/s:22UICircularProgressRing0aC15GradientOptionsV14colorLocationsSay12CoreGraphics7CGFloatVGvp":{"name":"colorLocations","abstract":"

    the locations of where to place the colors, valid numbers are from 0.0 - 1.0

    ","parent_name":"UICircularRingGradientOptions"},"Structs/UICircularRingGradientOptions.html#/s:22UICircularProgressRing0aC15GradientOptionsV13startPosition03endG06colors14colorLocationsAcA0acdG0O_AISaySo7UIColorCGSay12CoreGraphics7CGFloatVGtcfc":{"name":"init(startPosition:endPosition:colors:colorLocations:)","abstract":"

    create a new UICircularRingGradientOptions

    ","parent_name":"UICircularRingGradientOptions"},"Structs/UICircularRingValueKnobStyle.html#/s:22UICircularProgressRing0aC14ValueKnobStyleV7defaultACvpZ":{"name":"default","abstract":"

    default implmementation of the knob style

    ","parent_name":"UICircularRingValueKnobStyle"},"Structs/UICircularRingValueKnobStyle.html#/s:22UICircularProgressRing0aC14ValueKnobStyleV4size12CoreGraphics7CGFloatVvp":{"name":"size","abstract":"

    the size of the knob

    ","parent_name":"UICircularRingValueKnobStyle"},"Structs/UICircularRingValueKnobStyle.html#/s:22UICircularProgressRing0aC14ValueKnobStyleV5colorSo7UIColorCvp":{"name":"color","abstract":"

    the color of the knob

    ","parent_name":"UICircularRingValueKnobStyle"},"Structs/UICircularRingValueKnobStyle.html#/s:22UICircularProgressRing0aC14ValueKnobStyleV10shadowBlur12CoreGraphics7CGFloatVvp":{"name":"shadowBlur","abstract":"

    the amount of blur to give the shadow

    ","parent_name":"UICircularRingValueKnobStyle"},"Structs/UICircularRingValueKnobStyle.html#/s:22UICircularProgressRing0aC14ValueKnobStyleV12shadowOffsetSo6CGSizeVvp":{"name":"shadowOffset","abstract":"

    the offset to give the shadow

    ","parent_name":"UICircularRingValueKnobStyle"},"Structs/UICircularRingValueKnobStyle.html#/s:22UICircularProgressRing0aC14ValueKnobStyleV11shadowColorSo7UIColorCvp":{"name":"shadowColor","abstract":"

    the color for the shadow

    ","parent_name":"UICircularRingValueKnobStyle"},"Structs/UICircularRingValueKnobStyle.html#/s:22UICircularProgressRing0aC14ValueKnobStyleV4size5color10shadowBlur0I6Offset0I5ColorAC12CoreGraphics7CGFloatV_So7UIColorCAKSo6CGSizeVAMtcfc":{"name":"init(size:color:shadowBlur:shadowOffset:shadowColor:)","abstract":"

    creates a new UICircularRingValueKnobStyle

    ","parent_name":"UICircularRingValueKnobStyle"},"Structs/UICircularRingValueKnobStyle.html":{"name":"UICircularRingValueKnobStyle","abstract":"

    UICircularRingValueKnobStyle

    "},"Structs/UICircularRingGradientOptions.html":{"name":"UICircularRingGradientOptions","abstract":"

    UICircularRingGradientOptions

    "},"Structs/UICircularTimerRingFormatter.html":{"name":"UICircularTimerRingFormatter","abstract":"

    UICircularTimerRingFormatter

    "},"Structs/UICircularProgressRingFormatter.html":{"name":"UICircularProgressRingFormatter","abstract":"

    UICircularProgressRingFormatter

    "},"Protocols/UICircularRingValueFormatter.html#/s:22UICircularProgressRing0aC14ValueFormatterP6string3forSSSgyp_tF":{"name":"string(for:)","abstract":"

    returns a string for the given object

    ","parent_name":"UICircularRingValueFormatter"},"Protocols/UICircularProgressRingDelegate.html#/s:22UICircularProgressRing0abC8DelegateP09didFinishB03foryA2AC_tF":{"name":"didFinishProgress(for:)","abstract":"

    Called when progress ring is done animating for current value

    ","parent_name":"UICircularProgressRingDelegate"},"Protocols/UICircularProgressRingDelegate.html#/s:22UICircularProgressRing0abC8DelegateP08didPauseB03foryA2AC_tF":{"name":"didPauseProgress(for:)","abstract":"

    Called when progress has paused

    ","parent_name":"UICircularProgressRingDelegate"},"Protocols/UICircularProgressRingDelegate.html#/s:22UICircularProgressRing0abC8DelegateP011didContinueB03foryA2AC_tF":{"name":"didContinueProgress(for:)","abstract":"

    Called when the progress has continued after a pause

    ","parent_name":"UICircularProgressRingDelegate"},"Protocols/UICircularProgressRingDelegate.html#/s:22UICircularProgressRing0abC8DelegateP09didUpdateB5Value3for2toyA2AC_12CoreGraphics7CGFloatVtF":{"name":"didUpdateProgressValue(for:to:)","abstract":"

    This method is called whenever the value is updated, this means during animation this method will be called in real time.","parent_name":"UICircularProgressRingDelegate"},"Protocols/UICircularProgressRingDelegate.html#/s:22UICircularProgressRing0abC8DelegateP16willDisplayLabel3for_yA2AC_So7UILabelCtF":{"name":"willDisplayLabel(for:_:)","abstract":"

    This method is called whenever the label is about to be drawn.","parent_name":"UICircularProgressRingDelegate"},"Protocols/UICircularProgressRingDelegate.html":{"name":"UICircularProgressRingDelegate","abstract":"

    This is the protocol declaration for the UICircularRing delegate property

    "},"Protocols/UICircularRingValueFormatter.html":{"name":"UICircularRingValueFormatter","abstract":"

    UICircularRingValueFormatter

    "},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO3topyA2CmF":{"name":"top","abstract":"

    Gradient positioned at the top

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO6bottomyA2CmF":{"name":"bottom","abstract":"

    Gradient positioned at the bottom

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO4leftyA2CmF":{"name":"left","abstract":"

    Gradient positioned to the left

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO5rightyA2CmF":{"name":"right","abstract":"

    Gradient positioned to the right

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO7topLeftyA2CmF":{"name":"topLeft","abstract":"

    Gradient positioned in the top left corner

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO8topRightyA2CmF":{"name":"topRight","abstract":"

    Gradient positioned in the top right corner

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO10bottomLeftyA2CmF":{"name":"bottomLeft","abstract":"

    Gradient positioned in the bottom left corner

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingGradientPosition.html#/s:22UICircularProgressRing0aC16GradientPositionO11bottomRightyA2CmF":{"name":"bottomRight","abstract":"

    Gradient positioned in the bottom right corner

    ","parent_name":"UICircularRingGradientPosition"},"Enums/UICircularRingStyle.html#/s:22UICircularProgressRing0aC5StyleO6insideyA2CmF":{"name":"inside","abstract":"

    inner ring is inside the circle

    ","parent_name":"UICircularRingStyle"},"Enums/UICircularRingStyle.html#/s:22UICircularProgressRing0aC5StyleO5ontopyA2CmF":{"name":"ontop","abstract":"

    inner ring is placed ontop of the outer ring

    ","parent_name":"UICircularRingStyle"},"Enums/UICircularRingStyle.html#/s:22UICircularProgressRing0aC5StyleO6dashedyACSay12CoreGraphics7CGFloatVG_tcACmF":{"name":"dashed(pattern:)","abstract":"

    outer ring is dashed, the pattern list is how the dashes should appear

    ","parent_name":"UICircularRingStyle"},"Enums/UICircularRingStyle.html#/s:22UICircularProgressRing0aC5StyleO6dottedyA2CmF":{"name":"dotted","abstract":"

    outer ring is dotted

    ","parent_name":"UICircularRingStyle"},"Enums/UICircularRingStyle.html#/s:22UICircularProgressRing0aC5StyleO8borderedyAC12CoreGraphics7CGFloatV_So7UIColorCtcACmF":{"name":"bordered(width:color:)","abstract":"

    inner ring is placed ontop of the outer ring and outer ring has border

    ","parent_name":"UICircularRingStyle"},"Enums/UICircularRingStyle.html":{"name":"UICircularRingStyle","abstract":"

    UICircularRingStyle

    "},"Enums/UICircularRingGradientPosition.html":{"name":"UICircularRingGradientPosition","abstract":"

    UICircularRingGradientPosition

    "},"Classes/UICircularTimerRing/State.html#/s:22UICircularProgressRing0a5TimerC0C5StateO8finishedyA2EmF":{"name":"finished","abstract":"

    the timer has finished

    ","parent_name":"State"},"Classes/UICircularTimerRing/State.html#/s:22UICircularProgressRing0a5TimerC0C5StateO9continuedyAESdSg_tcAEmF":{"name":"continued(elapsedTime:)","abstract":"

    the timer was continued called continueTimer

    ","parent_name":"State"},"Classes/UICircularTimerRing/State.html#/s:22UICircularProgressRing0a5TimerC0C5StateO6pausedyAESdSg_tcAEmF":{"name":"paused(elpasedTime:)","abstract":"

    the timer was paused called pauseTimer

    ","parent_name":"State"},"Classes/UICircularTimerRing.html#/s:22UICircularProgressRing0a5TimerC0C14valueFormatterAA0ac5ValueF0_pvp":{"name":"valueFormatter","abstract":"

    The formatter used when formatting the value into a string for the ring.

    ","parent_name":"UICircularTimerRing"},"Classes/UICircularTimerRing.html#/s:22UICircularProgressRing0a5TimerC0C0D7Handlera":{"name":"TimerHandler","abstract":"

    The handler for the timer.

    ","parent_name":"UICircularTimerRing"},"Classes/UICircularTimerRing.html#/s:22UICircularProgressRing0a5TimerC0C05startD02to7handlerySd_yAC5StateOcSgtF":{"name":"startTimer(to:handler:)","abstract":"

    Starts the timer until the given time is elapsed.

    ","parent_name":"UICircularTimerRing"},"Classes/UICircularTimerRing.html#/s:22UICircularProgressRing0a5TimerC0C05pauseD0yyF":{"name":"pauseTimer()","abstract":"

    Pauses the timer.

    ","parent_name":"UICircularTimerRing"},"Classes/UICircularTimerRing.html#/s:22UICircularProgressRing0a5TimerC0C08continueD0yyF":{"name":"continueTimer()","abstract":"

    Continues the timer from a previously paused time.

    ","parent_name":"UICircularTimerRing"},"Classes/UICircularTimerRing.html#/s:22UICircularProgressRing0a5TimerC0C05resetD0yyF":{"name":"resetTimer()","abstract":"

    Resets the timer, this means the time is reset and","parent_name":"UICircularTimerRing"},"Classes/UICircularTimerRing/State.html":{"name":"State","abstract":"

    state of the timer ring, used in handler

    ","parent_name":"UICircularTimerRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)fullCircle":{"name":"fullCircle","abstract":"

    Whether or not the progress ring should be a full circle.

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C5styleAA0aC5StyleOvp":{"name":"style","abstract":"

    The style of the progress ring.

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C15gradientOptionsAA0ac8GradientE0VSgvp":{"name":"gradientOptions","abstract":"

    The options for a gradient ring.

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)shouldShowValueText":{"name":"shouldShowValueText","abstract":"

    A toggle for showing or hiding the value label.","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C14valueKnobStyleAA0ac5ValueeF0VSgvp":{"name":"valueKnobStyle","abstract":"

    Style for the value knob, default is nil.

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)startAngle":{"name":"startAngle","abstract":"

    The start angle for the entire progress ring view.

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)endAngle":{"name":"endAngle","abstract":"

    The end angle for the entire progress ring

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)outerRingWidth":{"name":"outerRingWidth","abstract":"

    The width of the outer ring for the progres bar

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)outerRingColor":{"name":"outerRingColor","abstract":"

    The color for the outer ring

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C13outerCapStyleSo06CGLineE0Vvp":{"name":"outerCapStyle","abstract":"

    The style for the tip/cap of the outer ring

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)innerRingWidth":{"name":"innerRingWidth","abstract":"

    The width of the inner ring for the progres bar

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)innerRingColor":{"name":"innerRingColor","abstract":"

    The color of the inner ring for the progres bar

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)innerRingSpacing":{"name":"innerRingSpacing","abstract":"

    The spacing between the outer ring and inner ring

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C13innerCapStyleSo06CGLineE0Vvp":{"name":"innerCapStyle","abstract":"

    The style for the tip/cap of the inner ring

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)fontColor":{"name":"fontColor","abstract":"

    The text color for the value label field

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)font":{"name":"font","abstract":"

    The font to be used for the progress indicator.","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C11isAnimatingSbvp":{"name":"isAnimating","abstract":"

    This returns whether or not the ring is currently animating

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(py)isClockwise":{"name":"isClockwise","abstract":"

    The direction the circle is drawn in","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C27PropertyAnimationCompletiona":{"name":"PropertyAnimationCompletion","abstract":"

    Typealias for animateProperties(duration:animations:completion:) fucntion completion

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(cpy)layerClass":{"name":"layerClass","abstract":"

    Overrides the default layer with the custom UICircularRingLayer class

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(im)initWithFrame:":{"name":"init(frame:)","abstract":"

    Overriden public init to initialize the layer and view

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(im)initWithCoder:":{"name":"init(coder:)","abstract":"

    Overriden public init to initialize the layer and view

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularRing(im)drawRect:":{"name":"draw(_:)","abstract":"

    Overriden because of custom layer drawing in UICircularRingLayer

    ","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C17animateProperties8duration10animationsySd_yyXEtF":{"name":"animateProperties(duration:animations:)","abstract":"

    This function allows animation of the animatable properties of the UICircularRing.","parent_name":"UICircularRing"},"Classes/UICircularRing.html#/s:22UICircularProgressRing0aC0C17animateProperties8duration10animations10completionySd_yyXEyycSgtF":{"name":"animateProperties(duration:animations:completion:)","abstract":"

    This function allows animation of the animatable properties of the UICircularRing.","parent_name":"UICircularRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC8delegateAA0abC8Delegate_pSgXwvp":{"name":"delegate","abstract":"

    The delegate for the UICircularRing

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularProgressRing(py)value":{"name":"value","abstract":"

    The value property for the progress ring.

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC12currentValue12CoreGraphics7CGFloatVSgvp":{"name":"currentValue","abstract":"

    The current value of the progress ring

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularProgressRing(py)minValue":{"name":"minValue","abstract":"

    The minimum value for the progress ring. ex: (0) -> 100.

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/c:@M@UICircularProgressRing@objc(cs)UICircularProgressRing(py)maxValue":{"name":"maxValue","abstract":"

    The maximum value for the progress ring. ex: 0 -> (100)

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC23animationTimingFunctionSo07CAMediaeF4Nameavp":{"name":"animationTimingFunction","abstract":"

    The type of animation function the ring view will use

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC14valueFormatterAA0ac5ValueE0_pvp":{"name":"valueFormatter","abstract":"

    The formatter responsible for formatting the","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC0B10Completiona":{"name":"ProgressCompletion","abstract":"

    Typealias for the startProgress(:) method closure

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC05startB02to8duration10completiony12CoreGraphics7CGFloatV_SdyycSgtF":{"name":"startProgress(to:duration:completion:)","abstract":"

    Sets the current value for the progress ring, calling this method while ring is","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC05pauseB0yyF":{"name":"pauseProgress()","abstract":"

    Pauses the currently running animation and halts all progress.

    ","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC08continueB0yyF":{"name":"continueProgress()","abstract":"

    Continues the animation with its remaining time from where it left off before it was paused.","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html#/s:22UICircularProgressRingAAC05resetB0yyF":{"name":"resetProgress()","abstract":"

    Resets the progress back to the minValue of the progress ring.","parent_name":"UICircularProgressRing"},"Classes/UICircularProgressRing.html":{"name":"UICircularProgressRing","abstract":"

    Undocumented

    "},"Classes/UICircularRing.html":{"name":"UICircularRing","abstract":"

    UICircularRing

    "},"Classes/UICircularTimerRing.html":{"name":"UICircularTimerRing","abstract":"

    Undocumented

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Enums.html":{"name":"Enumerations","abstract":"

    The following enumerations are available globally.

    "},"Protocols.html":{"name":"Protocols","abstract":"

    The following protocols are available globally.

    "},"Structs.html":{"name":"Structures","abstract":"

    The following structures are available globally.

    "}} \ No newline at end of file diff --git a/run-jazzy.sh b/run-jazzy.sh index e9ce0ab5..385773e0 100755 --- a/run-jazzy.sh +++ b/run-jazzy.sh @@ -1,4 +1,4 @@ #!/bin/bash -jazzy --clean --source-directory src --output docs -a Luis Padron -u https://luispadron.com -m UICircularProgressRing --module-version 5.0.0 -g https://github.com/luispadron/UICircularProgressRing --theme apple +jazzy --clean --source-directory src --output docs -a Luis Padron -u https://luispadron.com -m UICircularProgressRing --module-version 6.0.0 -g https://github.com/luispadron/UICircularProgressRing --theme apple