16 Commits

Author SHA1 Message Date
Kaunteya Suryawanshi 6a729e96e3 Updated the podspec for 0.4.0 2015-10-27 11:41:00 +05:30
Kaunteya Suryawanshi 56e1225dc5 Merge pull request #2 from kaunteya/RotatingArc
Rotating arc
2015-10-26 17:23:08 +05:30
Kaunteya Suryawanshi 885748e33b Added rotating arc 2015-10-26 17:18:38 +05:30
Kaunteya Suryawanshi aa22de6564 Scaled down Rotating arc 2015-10-26 17:16:47 +05:30
Kaunteya Suryawanshi 7dac890d47 Scaled down indeterminate inamge 2015-10-26 17:14:42 +05:30
Kaunteya Suryawanshi 9c22dbe3a2 Updated Rotating Arc 2015-10-26 17:11:06 +05:30
Kaunteya Suryawanshi 85187f38ff Added rotating arc 2015-10-26 17:00:44 +05:30
Kaunteya Suryawanshi 99f861f760 Fixed the paths that were closing automatically 2015-10-26 15:43:06 +05:30
Kaunteya Suryawanshi 598179a53d Added more indeterminate animations 2015-10-26 14:45:19 +05:30
Kaunteya Suryawanshi b3e3befc89 Added rainbow demo 2015-10-26 14:40:49 +05:30
Kaunteya Suryawanshi e9050e3774 Added rainbow in demo 2015-10-26 14:35:47 +05:30
Kaunteya Suryawanshi 8433775d96 Added gif of ShootingStar 2015-10-26 14:28:27 +05:30
Kaunteya Suryawanshi 675dd9496c Auto updated animation tag in storyboard 2015-10-26 14:17:22 +05:30
Kaunteya Suryawanshi de95fd9ee8 Added documentation comments for Indeterminate animation 2015-10-24 11:35:34 +05:30
Kaunteya Suryawanshi 6f53f86b63 do_ to do(as per Swift 2) 2015-10-24 00:26:50 +05:30
Kaunteya Suryawanshi 2594ac2584 Added utilities to ProgressUtils 2015-10-24 00:25:52 +05:30
14 changed files with 442 additions and 43 deletions
+3 -3
View File
@@ -61,7 +61,7 @@ public class CircularProgressView: DeterminateAnimation {
// Add background Circle
do_ {
do {
backgroundCircle.frame = rect
backgroundCircle.lineWidth = strokeWidth == -1 ? (rect.width * strokeScalingFactor / 2) : strokeWidth / 2
@@ -74,7 +74,7 @@ public class CircularProgressView: DeterminateAnimation {
}
// Progress Layer
do_ {
do {
progressLayer.strokeEnd = 0 //REMOVe this
progressLayer.fillColor = NSColor.clearColor().CGColor
progressLayer.lineCap = kCALineCapRound
@@ -90,7 +90,7 @@ public class CircularProgressView: DeterminateAnimation {
}
// Percentage Layer
do_ {
do {
percentLabelLayer.string = "0%"
percentLabelLayer.foregroundColor = foreground.CGColor
percentLabelLayer.frame = rect
Binary file not shown.

After

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 436 KiB

After

Width:  |  Height:  |  Size: 316 KiB

+19 -1
View File
@@ -15,8 +15,15 @@ protocol AnimationActivityProtocol {
}
public class IndeterminateAnimation: BaseView, AnimationActivityProtocol {
/// View is hidden when *animate* property is false
@IBInspectable var displayAfterAnimationEnds: Bool = false
/**
Control point for all Indeterminate animation
True invokes `startAnimation()` on subclass of IndeterminateAnimation
False invokes `stopAnimation()` on subclass of IndeterminateAnimation
*/
var animate: Bool = false {
didSet {
if animate {
@@ -30,10 +37,21 @@ public class IndeterminateAnimation: BaseView, AnimationActivityProtocol {
}
}
}
/**
Every function that extends Indeterminate animation must define startAnimation().
`animate` property of Indeterminate animation will indynamically invoke the subclass method
*/
func startAnimation() {
fatalError("This is an abstract function")
}
/**
Every function that extends Indeterminate animation must define **stopAnimation()**.
*animate* property of Indeterminate animation will dynamically invoke the subclass method
*/
func stopAnimation() {
fatalError("This is an abstract function")
}
}
}
+1 -2
View File
@@ -22,8 +22,7 @@ public class Rainbow: CircularSnail {
override public func animationDidStop(anim: CAAnimation, finished flag: Bool) {
super.animationDidStop(anim, finished: flag)
if onLightOffDark {
progressLayer.strokeColor = lightColorList[Int(arc4random()) % lightColorList.count].CGColor
progressLayer.strokeColor = lightColorList[Int(arc4random()) % lightColorList.count].CGColor
} else {
progressLayer.strokeColor = darkColorList[Int(arc4random()) % darkColorList.count].CGColor
}
+104
View File
@@ -0,0 +1,104 @@
//
// RotatingArc.swift
// ProgressKit
//
// Created by Kauntey Suryawanshi on 26/10/15.
// Copyright © 2015 Kauntey Suryawanshi. All rights reserved.
//
import Foundation
import Cocoa
private let duration = 0.25
@IBDesignable
public class RotatingArc: IndeterminateAnimation {
var backgroundCircle = CAShapeLayer()
var arcLayer = CAShapeLayer()
@IBInspectable var strokeWidth: CGFloat = 5 {
didSet {
notifyViewRedesigned()
}
}
@IBInspectable var arcLength: Int = 35 {
didSet {
notifyViewRedesigned()
}
}
@IBInspectable var clockWise: Bool = true {
didSet {
notifyViewRedesigned()
}
}
var radius: CGFloat {
return (self.frame.width / 2) * CGFloat(0.75)
}
var rotationAnimation: CABasicAnimation = {
var tempRotation = CABasicAnimation(keyPath: "transform.rotation")
tempRotation.repeatCount = Float.infinity
tempRotation.fromValue = 0
tempRotation.toValue = 1
tempRotation.cumulative = true
tempRotation.duration = duration
return tempRotation
}()
override func notifyViewRedesigned() {
super.notifyViewRedesigned()
arcLayer.strokeColor = foreground.CGColor
backgroundCircle.strokeColor = foreground.colorWithAlphaComponent(0.4).CGColor
backgroundCircle.lineWidth = self.strokeWidth
arcLayer.lineWidth = strokeWidth
rotationAnimation.toValue = clockWise ? -1 : 1
let arcPath = NSBezierPath()
let endAngle: CGFloat = CGFloat(-360) * CGFloat(arcLength) / 100
arcPath.appendBezierPathWithArcWithCenter(self.bounds.mid, radius: radius, startAngle: 0, endAngle: endAngle, clockwise: true)
arcLayer.path = arcPath.CGPath
}
override func configureLayers() {
super.configureLayers()
let rect = self.bounds
// Add background Circle
do {
backgroundCircle.frame = rect
backgroundCircle.lineWidth = strokeWidth
backgroundCircle.strokeColor = foreground.colorWithAlphaComponent(0.5).CGColor
backgroundCircle.fillColor = NSColor.clearColor().CGColor
let backgroundPath = NSBezierPath()
backgroundPath.appendBezierPathWithArcWithCenter(rect.mid, radius: radius, startAngle: 0, endAngle: 360)
backgroundCircle.path = backgroundPath.CGPath
self.layer?.addSublayer(backgroundCircle)
}
// Arc Layer
do {
arcLayer.fillColor = NSColor.clearColor().CGColor
arcLayer.lineWidth = strokeWidth
arcLayer.frame = rect
arcLayer.strokeColor = foreground.CGColor
self.layer?.addSublayer(arcLayer)
}
}
override func startAnimation() {
arcLayer.addAnimation(rotationAnimation, forKey: "")
}
override func stopAnimation() {
arcLayer.removeAllAnimations()
}
}
+2 -2
View File
@@ -34,7 +34,7 @@ public class ShootingStars: IndeterminateAnimation {
self.layer?.cornerRadius = 0
/// Add Stars
do_ {
do {
starLayer1.position = CGPoint(x: dimension / 2, y: dimension / 2)
starLayer1.bounds.size = CGSize(width: starWidth, height: dimension)
starLayer1.backgroundColor = foreground.CGColor
@@ -47,7 +47,7 @@ public class ShootingStars: IndeterminateAnimation {
}
/// Add default animation
do_ {
do {
animation.fromValue = -dimension
animation.toValue = rect.width * 0.9
animation.duration = animationDuration
+2 -2
View File
@@ -1,8 +1,8 @@
Pod::Spec.new do |spec|
spec.name = 'ProgressKit'
spec.version = '0.3.0'
spec.version = '0.4.0'
spec.license = 'MIT'
spec.summary = 'Animated ProgressViews for OSX'
spec.summary = 'Animated ProgressViews for OS X'
spec.homepage = 'https://github.com/kaunteya/ProgressKit'
spec.authors = { 'Kaunteya Suryawanshi' => 'k.suryawanshi@gmail.com' }
spec.source = { :git => 'https://github.com/kaunteya/ProgressKit.git', :tag => spec.version }
+4
View File
@@ -8,6 +8,7 @@
/* Begin PBXBuildFile section */
E31617A61BC0596C007AD70F /* BaseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E31617A51BC0596C007AD70F /* BaseView.swift */; };
E340FDB81BDE45F000CE6550 /* RotatingArc.swift in Sources */ = {isa = PBXBuildFile; fileRef = E340FDB71BDE45F000CE6550 /* RotatingArc.swift */; settings = {ASSET_TAGS = (); }; };
E35D1C6C1B676889001DBAF2 /* Spinner.swift in Sources */ = {isa = PBXBuildFile; fileRef = E35D1C6B1B676889001DBAF2 /* Spinner.swift */; };
E37568DF1B6AAB530073E26F /* ProgressBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = E37568DE1B6AAB530073E26F /* ProgressBar.swift */; };
E3918F811B4E88CF00558DAB /* CircularProgressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3918F801B4E88CF00558DAB /* CircularProgressView.swift */; };
@@ -38,6 +39,7 @@
/* Begin PBXFileReference section */
E31617A51BC0596C007AD70F /* BaseView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseView.swift; sourceTree = "<group>"; };
E340FDB71BDE45F000CE6550 /* RotatingArc.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = RotatingArc.swift; path = InDeterminate/RotatingArc.swift; sourceTree = "<group>"; };
E35D1C6B1B676889001DBAF2 /* Spinner.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Spinner.swift; path = InDeterminate/Spinner.swift; sourceTree = "<group>"; };
E37568DE1B6AAB530073E26F /* ProgressBar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ProgressBar.swift; path = Determinate/ProgressBar.swift; sourceTree = "<group>"; };
E3918F801B4E88CF00558DAB /* CircularProgressView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CircularProgressView.swift; path = Determinate/CircularProgressView.swift; sourceTree = "<group>"; };
@@ -87,6 +89,7 @@
E3A468511B5434F7006DDE31 /* Crawler.swift */,
E3918F831B4E88DE00558DAB /* ShootingStars.swift */,
E35D1C6B1B676889001DBAF2 /* Spinner.swift */,
E340FDB71BDE45F000CE6550 /* RotatingArc.swift */,
);
name = Indeterminate;
sourceTree = "<group>";
@@ -272,6 +275,7 @@
E3918F841B4E88DE00558DAB /* CircularSnail.swift in Sources */,
E3AD65D81B426758009541CD /* AppDelegate.swift in Sources */,
E37568DF1B6AAB530073E26F /* ProgressBar.swift in Sources */,
E340FDB81BDE45F000CE6550 /* RotatingArc.swift in Sources */,
E3CCD59A1BBC2B9B00F7DB9A /* ProgressUtils.swift in Sources */,
E31617A61BC0596C007AD70F /* BaseView.swift in Sources */,
E3918FA81B4ECF7100558DAB /* Rainbow.swift in Sources */,
+273 -12
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="8191" systemVersion="14F27" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" initialViewController="B8D-0N-5wS">
<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="8191" systemVersion="15A284" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" initialViewController="B8D-0N-5wS">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="8191"/>
</dependencies>
@@ -666,7 +666,7 @@
<!--Tab View Controller-->
<scene sceneID="rXQ-85-vI9">
<objects>
<tabViewController selectedTabViewItemIndex="0" id="GTh-XG-eDn" sceneMemberID="viewController">
<tabViewController selectedTabViewItemIndex="1" id="GTh-XG-eDn" sceneMemberID="viewController">
<tabViewItems>
<tabViewItem label="Determinate" id="90h-OW-Y1a"/>
<tabViewItem label="Indeterminate" id="T4v-4q-PhE"/>
@@ -674,6 +674,7 @@
<tabView key="tabView" focusRingType="none" type="noTabsNoBorder" id="nfr-Au-q0a">
<rect key="frame" x="0.0" y="0.0" width="321" height="113"/>
<autoresizingMask key="autoresizingMask"/>
<animations/>
<font key="font" metaFont="message"/>
<tabViewItems/>
</tabView>
@@ -696,9 +697,11 @@
<subviews>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="qjG-BT-qLK" customClass="CircularSnail" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="20" y="84" width="80" height="80"/>
<animations/>
</customView>
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="8Ph-2H-wiR">
<rect key="frame" x="59" y="59" width="41" height="17"/>
<animations/>
<buttonCell key="cell" type="inline" title="More" bezelStyle="inline" alignment="center" borderStyle="border" inset="2" id="lBv-3R-Zg0">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystemBold"/>
@@ -708,7 +711,8 @@
</connections>
</button>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="3VR-oT-y2I" customClass="Spinner" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="304" y="84" width="80" height="80"/>
<rect key="frame" x="250" y="84" width="80" height="80"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="size" keyPath="starSize">
<size key="value" width="7" height="14"/>
@@ -720,13 +724,15 @@
</userDefinedRuntimeAttributes>
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="haM-Vg-aIY" customClass="Crawler" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="160" y="84" width="80" height="80"/>
<rect key="frame" x="129" y="84" width="80" height="80"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="displayAfterAnimationEnds" value="YES"/>
</userDefinedRuntimeAttributes>
</customView>
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Npu-8G-HkC">
<rect key="frame" x="199" y="59" width="41" height="17"/>
<rect key="frame" x="168" y="59" width="41" height="17"/>
<animations/>
<buttonCell key="cell" type="inline" title="More" bezelStyle="inline" alignment="center" borderStyle="border" inset="2" id="SqX-Fr-AwH">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystemBold"/>
@@ -737,6 +743,7 @@
</button>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="kmB-H3-AT2" customClass="ShootingStars" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="20" y="34" width="438" height="3"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="foreground">
<color key="value" white="1" alpha="1" colorSpace="calibratedWhite"/>
@@ -751,6 +758,7 @@
<shadow key="shadow" blurRadius="1">
<color key="color" red="0.25490197539329529" green="0.63529413938522339" blue="0.87058824300765991" alpha="1" colorSpace="calibratedRGB"/>
</shadow>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="foreground">
<color key="value" white="1" alpha="1" colorSpace="calibratedWhite"/>
@@ -764,7 +772,8 @@
</userDefinedRuntimeAttributes>
</customView>
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Q8N-1B-PXN">
<rect key="frame" x="343" y="59" width="41" height="17"/>
<rect key="frame" x="289" y="59" width="41" height="17"/>
<animations/>
<buttonCell key="cell" type="inline" title="More" bezelStyle="inline" alignment="center" controlSize="small" borderStyle="border" inset="2" id="Z8O-Rd-zkL">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystemBold"/>
@@ -773,7 +782,23 @@
<segue destination="DYk-pp-mvu" kind="popover" popoverAnchorView="Q8N-1B-PXN" popoverBehavior="t" preferredEdge="maxY" id="4W2-kM-ewl"/>
</connections>
</button>
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="vs0-Bp-9Zv">
<rect key="frame" x="422" y="59" width="41" height="17"/>
<animations/>
<buttonCell key="cell" type="inline" title="More" bezelStyle="inline" alignment="center" controlSize="small" borderStyle="border" inset="2" id="zgh-wl-Oer">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystemBold"/>
</buttonCell>
<connections>
<segue destination="yv4-ZL-xud" kind="popover" popoverAnchorView="vs0-Bp-9Zv" popoverBehavior="t" preferredEdge="maxY" id="6Tb-kJ-Lhz"/>
</connections>
</button>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="lR0-9k-CEu" customClass="RotatingArc" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="378" y="84" width="80" height="80"/>
<animations/>
</customView>
</subviews>
<animations/>
</view>
</viewController>
<customObject id="lcO-Gc-g97" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
@@ -781,15 +806,205 @@
<point key="canvasLocation" x="477" y="228"/>
</scene>
<!--In Determinate View Controller-->
<scene sceneID="vp2-ly-Hqp">
<objects>
<viewController id="yv4-ZL-xud" customClass="InDeterminateViewController" customModule="ProgressKit" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" id="loM-yl-24e">
<rect key="frame" x="0.0" y="0.0" width="324" height="220"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="kmw-BV-WIW" customClass="RotatingArc" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="14" y="126" width="80" height="80"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="strokeWidth">
<real key="value" value="9"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="color" keyPath="background">
<color key="value" red="0.78039216995239258" green="0.24705882370471954" blue="0.0078431377187371254" alpha="0.0" colorSpace="calibratedRGB"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="BN1-ct-TGA" customClass="RotatingArc" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="215" y="126" width="80" height="80"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="arcLength">
<integer key="value" value="75"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
<real key="value" value="40"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="IUA-cq-CIL" customClass="RotatingArc" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="20" y="31" width="80" height="80"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="clockWise" value="NO"/>
<userDefinedRuntimeAttribute type="number" keyPath="arcLength">
<integer key="value" value="20"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="hgU-aF-axh" customClass="RotatingArc" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="113" y="126" width="80" height="80"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="background">
<color key="value" red="0.1647058874" green="0.65882354970000001" blue="0.53333336109999996" alpha="0.0" colorSpace="calibratedRGB"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="color" keyPath="foreground">
<color key="value" red="0.90106928350000004" green="0.30634868139999999" blue="0.1696610898" alpha="1" colorSpace="calibratedRGB"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="number" keyPath="strokeWidth">
<real key="value" value="2"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="qTF-Fa-o4i" customClass="RotatingArc" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="20" y="31" width="80" height="80"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="background">
<color key="value" red="0.0" green="0.23137255012989044" blue="0.51372551918029785" alpha="0.0" colorSpace="calibratedRGB"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="boolean" keyPath="clockWise" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="arcLength">
<integer key="value" value="20"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="gqN-0P-V6h" customClass="RotatingArc" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="128" y="30" width="80" height="80"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="background">
<color key="value" red="0.0" green="0.23137255012989044" blue="0.51372551918029785" alpha="0.0" colorSpace="calibratedRGB"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="color" keyPath="foreground">
<color key="value" red="0.47450980544090271" green="0.23529411852359772" blue="0.46666666865348816" alpha="1" colorSpace="calibratedRGB"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="swG-XB-dD9" customClass="RotatingArc" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="121" y="23" width="95" height="95"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="background">
<color key="value" red="0.0" green="0.23137255009999999" blue="0.51372551919999998" alpha="0.0" colorSpace="calibratedRGB"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="color" keyPath="foreground">
<color key="value" red="0.47450980539999998" green="0.23529411850000001" blue="0.46666666870000001" alpha="1" colorSpace="calibratedRGB"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="number" keyPath="strokeWidth">
<real key="value" value="1"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="8WU-rT-wd5" customClass="RotatingArc" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="138" y="40" width="60" height="60"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="background">
<color key="value" red="0.0" green="0.23137255009999999" blue="0.51372551919999998" alpha="0.0" colorSpace="calibratedRGB"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="color" keyPath="foreground">
<color key="value" red="0.47450980539999998" green="0.23529411850000001" blue="0.46666666870000001" alpha="1" colorSpace="calibratedRGB"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="number" keyPath="strokeWidth">
<real key="value" value="3"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="bfz-P2-8sn" customClass="RotatingArc" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="224" y="30" width="80" height="80"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="background">
<color key="value" red="0.47450980544090271" green="0.23529411852359772" blue="0.46666666865348816" alpha="0.0" colorSpace="calibratedRGB"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="color" keyPath="foreground">
<color key="value" red="0.88627451658248901" green="0.40392157435417175" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="number" keyPath="strokeWidth">
<real key="value" value="2"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="number" keyPath="arcLength">
<integer key="value" value="47"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="j2W-FJ-v1G" customClass="RotatingArc" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="229" y="35" width="70" height="70"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="background">
<color key="value" red="0.47450980539999998" green="0.23529411850000001" blue="0.46666666870000001" alpha="0.0" colorSpace="calibratedRGB"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="color" keyPath="foreground">
<color key="value" red="0.88627451660000001" green="0.40392157439999998" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="number" keyPath="strokeWidth">
<real key="value" value="2"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="bgf-hY-ZRh" customClass="RotatingArc" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="234" y="40" width="60" height="60"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="background">
<color key="value" red="0.47450980539999998" green="0.23529411850000001" blue="0.46666666870000001" alpha="0.0" colorSpace="calibratedRGB"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="color" keyPath="foreground">
<color key="value" red="0.88627451660000001" green="0.40392157439999998" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="number" keyPath="strokeWidth">
<real key="value" value="2"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="number" keyPath="arcLength">
<integer key="value" value="22"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="RtF-Gh-lRq" customClass="RotatingArc" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="239" y="45" width="50" height="50"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="background">
<color key="value" red="0.47450980539999998" green="0.23529411850000001" blue="0.46666666870000001" alpha="0.0" colorSpace="calibratedRGB"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="color" keyPath="foreground">
<color key="value" red="0.88627451660000001" green="0.40392157439999998" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="number" keyPath="strokeWidth">
<real key="value" value="2"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="number" keyPath="arcLength">
<integer key="value" value="11"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</customView>
</subviews>
<animations/>
</view>
</viewController>
<customObject id="Aep-y6-iJb" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="1053" y="221"/>
</scene>
<!--In Determinate View Controller-->
<scene sceneID="A7n-21-b2E">
<objects>
<viewController id="Y7I-2Q-c7j" customClass="InDeterminateViewController" customModule="ProgressKit" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" id="tpW-6T-RtR">
<rect key="frame" x="0.0" y="0.0" width="450" height="115"/>
<rect key="frame" x="0.0" y="0.0" width="450" height="180"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Qkh-Jc-Yju" customClass="CircularSnail" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="20" y="15" width="80" height="80"/>
<rect key="frame" x="20" y="80" width="80" height="80"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="background">
<color key="value" red="0.93725490570068359" green="0.92941176891326904" blue="0.92156863212585449" alpha="0.0" colorSpace="calibratedRGB"/>
@@ -800,7 +1015,8 @@
</userDefinedRuntimeAttributes>
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="lq1-2r-OsR" customClass="CircularSnail" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="235" y="15" width="80" height="80"/>
<rect key="frame" x="235" y="80" width="80" height="80"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="background">
<color key="value" red="0.13725490868091583" green="0.49019607901573181" blue="0.81568628549575806" alpha="0.57000000000000006" colorSpace="calibratedRGB"/>
@@ -817,7 +1033,8 @@
</userDefinedRuntimeAttributes>
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Zv2-cL-kGS" customClass="CircularSnail" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="370" y="37" width="40" height="40"/>
<rect key="frame" x="370" y="102" width="40" height="40"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="background">
<color key="value" red="0.13725490868091583" green="0.49019607901573181" blue="0.81568628549575806" alpha="0.0" colorSpace="calibratedRGB"/>
@@ -831,19 +1048,35 @@
</userDefinedRuntimeAttributes>
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="BCf-PU-fcx" customClass="CircularSnail" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="123" y="15" width="80" height="80"/>
<rect key="frame" x="123" y="80" width="80" height="80"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
<real key="value" value="40"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Rp1-na-hhA" customClass="Rainbow" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="20" y="0.0" width="80" height="80"/>
<animations/>
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Gyx-mO-3Yh" customClass="Rainbow" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="123" y="0.0" width="80" height="80"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="onLightOffDark" value="YES"/>
<userDefinedRuntimeAttribute type="number" keyPath="lineWidth">
<real key="value" value="6"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</customView>
</subviews>
<animations/>
</view>
</viewController>
<customObject id="qek-pA-X3K" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="804" y="492.5"/>
<point key="canvasLocation" x="804" y="525"/>
</scene>
<!--Determinate View Controller-->
<scene sceneID="hIz-AP-VOD">
@@ -855,6 +1088,7 @@
<subviews>
<slider verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="vwx-DU-bI3">
<rect key="frame" x="136" y="264" width="289" height="20"/>
<animations/>
<sliderCell key="cell" continuous="YES" state="on" alignment="left" maxValue="1" doubleValue="0.29999999999999999" tickMarkPosition="above" sliderType="linear" id="kV7-A8-t5m"/>
<connections>
<action selector="sliderDragged:" target="XfG-lQ-9wD" id="mes-ql-pK5"/>
@@ -862,6 +1096,7 @@
</slider>
<button fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="p9y-Jj-cPs">
<rect key="frame" x="18" y="266" width="106" height="18"/>
<animations/>
<buttonCell key="cell" type="check" title="Live Progress" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="Pp0-aX-cfK">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
@@ -872,6 +1107,7 @@
</button>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="0tx-N3-gG1">
<rect key="frame" x="437" y="265" width="45" height="17"/>
<animations/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="100 %" id="7Nr-gz-yTj">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@@ -883,6 +1119,7 @@
</textField>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="fRz-hN-yoj" customClass="ProgressBar" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="26" y="45" width="454" height="9"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="foreground">
<color key="value" red="0.29411765933036804" green="0.22352941334247589" blue="0.5372549295425415" alpha="1" colorSpace="calibratedRGB"/>
@@ -897,6 +1134,7 @@
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ejA-gs-jO8" customClass="ProgressBar" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="26" y="91" width="454" height="15"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="progress">
<real key="value" value="0.34999999999999998"/>
@@ -905,6 +1143,7 @@
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="dYN-D7-hBy" customClass="CircularProgressView" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="26" y="132" width="101" height="101"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="progress">
<real key="value" value="0.40999999999999998"/>
@@ -913,6 +1152,7 @@
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="S81-p1-vGt" customClass="CircularProgressView" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="171" y="150" width="64" height="64"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="background">
<color key="value" red="0.83921569585800171" green="0.44705882668495178" blue="0.43921568989753723" alpha="1" colorSpace="calibratedRGB"/>
@@ -930,6 +1170,7 @@
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Bbh-Em-IM9" customClass="CircularProgressView" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="265" y="132" width="101" height="101"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="background">
<color key="value" white="1" alpha="0.0" colorSpace="calibratedWhite"/>
@@ -948,6 +1189,7 @@
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="4q2-PV-rE0" customClass="ProgressBar" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="26" y="67" width="454" height="11"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="progress">
<real key="value" value="0.80000000000000004"/>
@@ -964,6 +1206,7 @@
</userDefinedRuntimeAttributes>
</customView>
</subviews>
<animations/>
</view>
<connections>
<outlet property="slider" destination="vwx-DU-bI3" id="esn-lC-yUN"/>
@@ -983,6 +1226,7 @@
<subviews>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="X2k-vb-sC9" customClass="Spinner" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="20" y="122" width="56" height="56"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="size" keyPath="starSize">
<size key="value" width="7" height="7"/>
@@ -994,6 +1238,7 @@
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="EOH-IG-9v8" customClass="Spinner" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="103" y="117" width="67" height="67"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="size" keyPath="starSize">
<size key="value" width="3" height="13"/>
@@ -1009,6 +1254,7 @@
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="xbE-4t-MsT" customClass="Spinner" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="198" y="98" width="87" height="87"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="size" keyPath="starSize">
<size key="value" width="8" height="8"/>
@@ -1026,6 +1272,7 @@
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="4re-h9-0B8" customClass="Spinner" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="324" y="98" width="87" height="87"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="size" keyPath="starSize">
<size key="value" width="8" height="8"/>
@@ -1044,6 +1291,7 @@
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="cxV-XU-BMs" customClass="Spinner" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="324" y="98" width="87" height="87"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="size" keyPath="starSize">
<size key="value" width="8" height="8"/>
@@ -1062,6 +1310,7 @@
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="LQW-TQ-ZTf" customClass="Spinner" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="198" y="13" width="87" height="87"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="size" keyPath="starSize">
<size key="value" width="8" height="8"/>
@@ -1083,6 +1332,7 @@
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="qCX-xw-cn0" customClass="Spinner" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="198" y="13" width="87" height="87"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="size" keyPath="starSize">
<size key="value" width="7" height="7"/>
@@ -1104,9 +1354,11 @@
</customView>
<progressIndicator horizontalHuggingPriority="750" verticalHuggingPriority="750" fixedFrame="YES" maxValue="100" bezeled="NO" indeterminate="YES" controlSize="small" style="spinning" translatesAutoresizingMaskIntoConstraints="NO" id="rV6-J2-9Jn">
<rect key="frame" x="20" y="48" width="16" height="16"/>
<animations/>
</progressIndicator>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="M0A-06-Wvu" customClass="Spinner" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="103" y="23" width="67" height="67"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="size" keyPath="starSize">
<size key="value" width="9" height="6"/>
@@ -1128,6 +1380,7 @@
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="cRc-hQ-H17" customClass="Spinner" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="339" y="28" width="56" height="56"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="size" keyPath="starSize">
<size key="value" width="7" height="7"/>
@@ -1142,6 +1395,7 @@
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="sop-qz-vfQ" customClass="Spinner" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="58" y="48" width="18" height="18"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="size" keyPath="starSize">
<size key="value" width="2" height="4"/>
@@ -1162,6 +1416,7 @@
</userDefinedRuntimeAttributes>
</customView>
</subviews>
<animations/>
</view>
</viewController>
<customObject id="aXo-xa-gLk" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
@@ -1178,6 +1433,7 @@
<subviews>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="4ZV-ge-io4" customClass="Crawler" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="12" y="17" width="70" height="70"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="background">
<color key="value" red="0.96470588445663452" green="0.48627451062202454" blue="0.0" alpha="0.0" colorSpace="calibratedRGB"/>
@@ -1189,6 +1445,7 @@
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="mje-ex-whw" customClass="Crawler" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="105" y="17" width="70" height="70"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
<real key="value" value="35"/>
@@ -1197,6 +1454,7 @@
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="C1d-xS-5EM" customClass="Crawler" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="193" y="17" width="70" height="70"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="background">
<color key="value" red="0.76862746477127075" green="0.25882354378700256" blue="0.27058824896812439" alpha="1" colorSpace="calibratedRGB"/>
@@ -1208,6 +1466,7 @@
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="5mj-vA-VO1" customClass="Crawler" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="284" y="17" width="70" height="70"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="background">
<color key="value" white="0.1178155164969595" alpha="0.65000000000000002" colorSpace="calibratedWhite"/>
@@ -1219,6 +1478,7 @@
</customView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="GLF-fC-Weh" customClass="Crawler" customModule="ProgressKit" customModuleProvider="target">
<rect key="frame" x="369" y="17" width="70" height="70"/>
<animations/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="background">
<color key="value" red="0.46666666865348816" green="0.7137255072593689" blue="0.94901961088180542" alpha="1" colorSpace="calibratedRGB"/>
@@ -1229,6 +1489,7 @@
</userDefinedRuntimeAttributes>
</customView>
</subviews>
<animations/>
</view>
</viewController>
<customObject id="puf-Qu-TvG" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
+23 -21
View File
@@ -22,32 +22,34 @@ extension NSBezierPath {
let points = UnsafeMutablePointer<NSPoint>.alloc(3)
let numElements = self.elementCount
if numElements > 0 {
var didClosePath = true
for index in 0..<numElements {
let pathType = self.elementAtIndex(index, associatedPoints: points)
switch pathType {
case .MoveToBezierPathElement:
CGPathMoveToPoint(path, nil, points[0].x, points[0].y)
case .LineToBezierPathElement:
CGPathAddLineToPoint(path, nil, points[0].x, points[0].y)
didClosePath = false
case .CurveToBezierPathElement:
CGPathAddCurveToPoint(path, nil, points[0].x, points[0].y, points[1].x, points[1].y, points[2].x, points[2].y)
didClosePath = false
case .ClosePathBezierPathElement:
CGPathCloseSubpath(path)
didClosePath = true
}
for index in 0..<numElements {
let pathType = self.elementAtIndex(index, associatedPoints: points)
switch pathType {
case .MoveToBezierPathElement:
CGPathMoveToPoint(path, nil, points[0].x, points[0].y)
case .LineToBezierPathElement:
CGPathAddLineToPoint(path, nil, points[0].x, points[0].y)
case .CurveToBezierPathElement:
CGPathAddCurveToPoint(path, nil, points[0].x, points[0].y, points[1].x, points[1].y, points[2].x, points[2].y)
case .ClosePathBezierPathElement:
CGPathCloseSubpath(path)
}
if !didClosePath { CGPathCloseSubpath(path) }
}
points.dealloc(3)
return path
}
}
/// All the do_ invocations will be replace by do after Swift 2.0
func do_ (@noescape work: () -> ()) {
work()
func degreeToRadian(degree: Int) -> Double {
return Double(degree) * (M_PI / 180)
}
func radianToDegree(radian: Double) -> Int {
return Int(radian * (180 / M_PI))
}
func + (p1: CGPoint, p2: CGPoint) -> CGPoint {
return CGPoint(x: p1.x + p2.x, y: p1.y + p2.y)
}
+11
View File
@@ -9,8 +9,11 @@ You can now make spinners, progress bar, crawlers etc, which nicely gets integra
- [Usage](#usage)
- [Indeterminate Progress](#indeterminate-progress)
- [CircularSnail](#circularsnail)
- [Rainbow](#rainbow)
- [Crawler](#crawler)
- [Spinner](#spinner)
- [Shooting Stars](#shooting-stars)
- [Rotating Arc](#rotating-arc)
- [Determinate Progress](#determinate-progress)
- [Circular Progress] (#circular-progress)
- [Progress Bar](#progress-bar)
@@ -55,12 +58,20 @@ This are the set of Indeterminate Progress Indicators.
## CircularSnail
![CircularSnail](/Images/CircularSnail.gif)
## Rainbow
![Rainbow](/Images/Rainbow.gif)
## Crawler
![Crawler](/Images/Crawler.gif)
## Spinner
![Spinner](/Images/Spinner.gif)
## Shooting Stars
![Shooting Stars](/Images/ShootingStars.gif)
## Rotating Arc
![Rotating Arc](/Images/RotatingArc.gif)
# Determinate Progress
Determinate progress views can be used for tasks whos progress can be seen and determined.