Compare commits
23 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7d84b4e697 | |||
| 27cdcf5c53 | |||
| 0113a09f57 | |||
| a3b7a4c3bc | |||
| b9fef1fb29 | |||
| 9f7a41e2d8 | |||
| c6b46dcd53 | |||
| 6a729e96e3 | |||
| 56e1225dc5 | |||
| 885748e33b | |||
| aa22de6564 | |||
| 7dac890d47 | |||
| 9c22dbe3a2 | |||
| 85187f38ff | |||
| 99f861f760 | |||
| 598179a53d | |||
| b3e3befc89 | |||
| e9050e3774 | |||
| 8433775d96 | |||
| 675dd9496c | |||
| de95fd9ee8 | |||
| 6f53f86b63 | |||
| 2594ac2584 |
+4
-4
@@ -11,7 +11,7 @@ import AppKit
|
||||
@IBDesignable
|
||||
public class BaseView : NSView {
|
||||
|
||||
override init(frame frameRect: NSRect) {
|
||||
override public init(frame frameRect: NSRect) {
|
||||
super.init(frame: frameRect)
|
||||
self.configureLayers()
|
||||
}
|
||||
@@ -27,19 +27,19 @@ public class BaseView : NSView {
|
||||
notifyViewRedesigned()
|
||||
}
|
||||
|
||||
@IBInspectable var background: NSColor = NSColor(red: 88.3 / 256, green: 104.4 / 256, blue: 118.5 / 256, alpha: 1.0) {
|
||||
@IBInspectable public var background: NSColor = NSColor(red: 88.3 / 256, green: 104.4 / 256, blue: 118.5 / 256, alpha: 1.0) {
|
||||
didSet {
|
||||
self.notifyViewRedesigned()
|
||||
}
|
||||
}
|
||||
|
||||
@IBInspectable var foreground: NSColor = NSColor(red: 66.3 / 256, green: 173.7 / 256, blue: 106.4 / 256, alpha: 1.0) {
|
||||
@IBInspectable public var foreground: NSColor = NSColor(red: 66.3 / 256, green: 173.7 / 256, blue: 106.4 / 256, alpha: 1.0) {
|
||||
didSet {
|
||||
self.notifyViewRedesigned()
|
||||
}
|
||||
}
|
||||
|
||||
@IBInspectable var cornerRadius: CGFloat = 5.0 {
|
||||
@IBInspectable public var cornerRadius: CGFloat = 5.0 {
|
||||
didSet {
|
||||
self.notifyViewRedesigned()
|
||||
}
|
||||
|
||||
@@ -16,13 +16,13 @@ public class CircularProgressView: DeterminateAnimation {
|
||||
var progressLayer = CAShapeLayer()
|
||||
var percentLabelLayer = CATextLayer()
|
||||
|
||||
@IBInspectable var strokeWidth: CGFloat = -1 {
|
||||
@IBInspectable public var strokeWidth: CGFloat = -1 {
|
||||
didSet {
|
||||
notifyViewRedesigned()
|
||||
}
|
||||
}
|
||||
|
||||
@IBInspectable var showPercent: Bool = true {
|
||||
@IBInspectable public var showPercent: Bool = true {
|
||||
didSet {
|
||||
notifyViewRedesigned()
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -16,10 +16,10 @@ protocol DeterminableAnimation {
|
||||
@IBDesignable
|
||||
public class DeterminateAnimation: BaseView, DeterminableAnimation {
|
||||
|
||||
@IBInspectable var animated: Bool = true
|
||||
@IBInspectable public var animated: Bool = true
|
||||
|
||||
/// Value of progress now. Range 0..1
|
||||
@IBInspectable var progress: CGFloat = 0 {
|
||||
@IBInspectable public var progress: CGFloat = 0 {
|
||||
didSet {
|
||||
updateProgress()
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ public class ProgressBar: DeterminateAnimation {
|
||||
var borderLayer = CAShapeLayer()
|
||||
var progressLayer = CAShapeLayer()
|
||||
|
||||
@IBInspectable var borderColor: NSColor = NSColor.blackColor() {
|
||||
@IBInspectable public var borderColor: NSColor = NSColor.blackColor() {
|
||||
didSet {
|
||||
notifyViewRedesigned()
|
||||
}
|
||||
|
||||
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 |
@@ -15,7 +15,7 @@ private let strokeRange = (start: 0.0, end: 0.8)
|
||||
@IBDesignable
|
||||
public class CircularSnail: IndeterminateAnimation {
|
||||
|
||||
@IBInspectable var lineWidth: CGFloat = -1 {
|
||||
@IBInspectable public var lineWidth: CGFloat = -1 {
|
||||
didSet {
|
||||
progressLayer.lineWidth = lineWidth
|
||||
}
|
||||
|
||||
@@ -15,9 +15,16 @@ protocol AnimationActivityProtocol {
|
||||
}
|
||||
|
||||
public class IndeterminateAnimation: BaseView, AnimationActivityProtocol {
|
||||
@IBInspectable var displayAfterAnimationEnds: Bool = false
|
||||
|
||||
var animate: Bool = false {
|
||||
/// View is hidden when *animate* property is false
|
||||
@IBInspectable public var displayAfterAnimationEnds: Bool = false
|
||||
|
||||
/**
|
||||
Control point for all Indeterminate animation
|
||||
True invokes `startAnimation()` on subclass of IndeterminateAnimation
|
||||
False invokes `stopAnimation()` on subclass of IndeterminateAnimation
|
||||
*/
|
||||
public var animate: Bool = false {
|
||||
didSet {
|
||||
if animate {
|
||||
self.hidden = false
|
||||
@@ -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")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ import Cocoa
|
||||
@IBDesignable
|
||||
public class Rainbow: CircularSnail {
|
||||
|
||||
@IBInspectable var onLightOffDark: Bool = false
|
||||
@IBInspectable public var onLightOffDark: Bool = false
|
||||
|
||||
override func configureLayers() {
|
||||
super.configureLayers()
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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 public var strokeWidth: CGFloat = 5 {
|
||||
didSet {
|
||||
notifyViewRedesigned()
|
||||
}
|
||||
}
|
||||
|
||||
@IBInspectable public var arcLength: Int = 35 {
|
||||
didSet {
|
||||
notifyViewRedesigned()
|
||||
}
|
||||
}
|
||||
|
||||
@IBInspectable public 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()
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -23,38 +23,38 @@ public class Spinner: IndeterminateAnimation {
|
||||
return animation
|
||||
}()
|
||||
|
||||
@IBInspectable var starSize:CGSize = CGSize(width: 6, height: 15) {
|
||||
@IBInspectable public var starSize:CGSize = CGSize(width: 6, height: 15) {
|
||||
didSet {
|
||||
notifyViewRedesigned()
|
||||
}
|
||||
}
|
||||
|
||||
@IBInspectable var roundedCorners: Bool = true {
|
||||
@IBInspectable public var roundedCorners: Bool = true {
|
||||
didSet {
|
||||
notifyViewRedesigned()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@IBInspectable var distance: CGFloat = CGFloat(20) {
|
||||
@IBInspectable public var distance: CGFloat = CGFloat(20) {
|
||||
didSet {
|
||||
notifyViewRedesigned()
|
||||
}
|
||||
}
|
||||
|
||||
@IBInspectable var starCount: Int = 10 {
|
||||
@IBInspectable public var starCount: Int = 10 {
|
||||
didSet {
|
||||
notifyViewRedesigned()
|
||||
}
|
||||
}
|
||||
|
||||
@IBInspectable var duration: Double = 1 {
|
||||
@IBInspectable public var duration: Double = 1 {
|
||||
didSet {
|
||||
animation.duration = duration
|
||||
}
|
||||
}
|
||||
|
||||
@IBInspectable var clockwise: Bool = false {
|
||||
@IBInspectable public var clockwise: Bool = false {
|
||||
didSet {
|
||||
notifyViewRedesigned()
|
||||
}
|
||||
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
Pod::Spec.new do |spec|
|
||||
spec.name = 'ProgressKit'
|
||||
spec.version = '0.3.0'
|
||||
spec.version = '0.4.1'
|
||||
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 }
|
||||
|
||||
@@ -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 */,
|
||||
|
||||
@@ -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
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,16 +1,25 @@
|
||||
|
||||

|
||||

|
||||
|
||||
[](https://img.shields.io/cocoapods/v/ProgressKit.svg)
|
||||
[](http://cocoadocs.org/docsets/ProgressKit)
|
||||
[](http://cocoadocs.org/docsets/ProgressKit)
|
||||
|
||||
|
||||
|
||||
`ProgressKit` has set of cool `IBDesignable` progress views, with huge customisation options.
|
||||
You can now make spinners, progress bar, crawlers etc, which nicely gets integrated according to your app theme.
|
||||
You can now make spinners, progress bar, crawlers etc, which can be finely customised according to your app palette.
|
||||
|
||||
# Contents
|
||||
- [Installation](#installation)
|
||||
- [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)
|
||||
@@ -40,7 +49,7 @@ $ pod install
|
||||
- Set the size such that width and height are equal
|
||||
- Drag `IBOutlet` to View Controller
|
||||
- For `Indeterminate` Progress Views
|
||||
- Set `Boolean` value to `view.animate`
|
||||
- Set `true / false` to `view.animate`
|
||||
- For `Determinate` Progress Views:
|
||||
- Set `view.progress` to value in `0...1`
|
||||
|
||||
@@ -55,12 +64,20 @@ This are the set of Indeterminate Progress Indicators.
|
||||
## CircularSnail
|
||||

|
||||
|
||||
## Rainbow
|
||||

|
||||
## Crawler
|
||||

|
||||
|
||||
## Spinner
|
||||

|
||||
|
||||
## Shooting Stars
|
||||

|
||||
|
||||
## Rotating Arc
|
||||

|
||||
|
||||
# Determinate Progress
|
||||
Determinate progress views can be used for tasks whos progress can be seen and determined.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user