From d6ec8d4baf1a062eae4a3ca76196b8552332daa7 Mon Sep 17 00:00:00 2001 From: Nguyen Vinh Date: Fri, 14 Aug 2015 12:19:41 +0400 Subject: [PATCH 01/16] Fix issue when using as framework - Public class itself and members --- .../NVActivityIndicatorView.swift | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/NVActivityIndicatorView/NVActivityIndicatorView.swift b/NVActivityIndicatorView/NVActivityIndicatorView.swift index bfdaeabe..0998de30 100644 --- a/NVActivityIndicatorView/NVActivityIndicatorView.swift +++ b/NVActivityIndicatorView/NVActivityIndicatorView.swift @@ -8,7 +8,7 @@ import UIKit -enum NVActivityIndicatorType { +public enum NVActivityIndicatorType { case Blank case BallPulse case BallGridPulse @@ -40,7 +40,7 @@ enum NVActivityIndicatorType { case SemiCircleSpin } -class NVActivityIndicatorView: UIView { +public class NVActivityIndicatorView: UIView { private let DEFAULT_TYPE: NVActivityIndicatorType = .Blank private let DEFAULT_COLOR = UIColor.whiteColor() private let DEFAULT_SIZE: CGSize = CGSize(width: 40, height: 40) @@ -51,14 +51,14 @@ class NVActivityIndicatorView: UIView { var animating: Bool = false - required init(coder aDecoder: NSCoder) { + required public init(coder aDecoder: NSCoder) { self.type = DEFAULT_TYPE self.color = DEFAULT_COLOR self.size = DEFAULT_SIZE super.init(coder: aDecoder); } - init(frame: CGRect, type: NVActivityIndicatorType, color: UIColor?, size: CGSize?) { + public init(frame: CGRect, type: NVActivityIndicatorType, color: UIColor?, size: CGSize?) { self.type = type self.color = DEFAULT_COLOR self.size = DEFAULT_SIZE @@ -72,15 +72,15 @@ class NVActivityIndicatorView: UIView { } } - convenience init(frame: CGRect, type: NVActivityIndicatorType, color: UIColor?) { + convenience public init(frame: CGRect, type: NVActivityIndicatorType, color: UIColor?) { self.init(frame: frame, type: type, color: color, size: nil) } - convenience init(frame: CGRect, type: NVActivityIndicatorType) { + convenience public init(frame: CGRect, type: NVActivityIndicatorType) { self.init(frame: frame, type: type, color: nil) } - func startAnimation() { + public func startAnimation() { if (self.layer.sublayers == nil) { setUpAnimation() } @@ -88,11 +88,13 @@ class NVActivityIndicatorView: UIView { self.animating = true } - func stopAnimation() { + public func stopAnimation() { self.layer.speed = 0 self.animating = false } + // MARK: Privates + private func setUpAnimation() { let animation: protocol = animationOfType(self.type) From e7fb78b2266a7c450df7499396058a3e7491f7a2 Mon Sep 17 00:00:00 2001 From: Nguyen Vinh Date: Fri, 14 Aug 2015 13:26:13 +0400 Subject: [PATCH 02/16] Documentation --- .../NVActivityIndicatorView.swift | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/NVActivityIndicatorView/NVActivityIndicatorView.swift b/NVActivityIndicatorView/NVActivityIndicatorView.swift index 0998de30..6fefa1c0 100644 --- a/NVActivityIndicatorView/NVActivityIndicatorView.swift +++ b/NVActivityIndicatorView/NVActivityIndicatorView.swift @@ -51,6 +51,18 @@ public class NVActivityIndicatorView: UIView { var animating: Bool = false + /** + Create a activity indicator view with default type, color and size + This is used by storyboard to initiate the view + + - Default type is pacman\n + - Default color is white\n + - Default size is 40 + + :param: decoder + + :returns: The activity indicator view + */ required public init(coder aDecoder: NSCoder) { self.type = DEFAULT_TYPE self.color = DEFAULT_COLOR @@ -58,6 +70,16 @@ public class NVActivityIndicatorView: UIView { super.init(coder: aDecoder); } + /** + Create a activity indicator view with specified type, color, size and size + + :param: frame view's frame + :param: type animation type, value of NVActivityIndicatorType enum + :param: color color of activity indicator view + :param: size actual size of animation in view + + :returns: The activity indicator view + */ public init(frame: CGRect, type: NVActivityIndicatorType, color: UIColor?, size: CGSize?) { self.type = type self.color = DEFAULT_COLOR @@ -72,14 +94,39 @@ public class NVActivityIndicatorView: UIView { } } + /** + Create a activity indicator view with specified type, color and default size + + - Default size is 40 + + :param: frame view's frame + :param: value animation type, value of NVActivityIndicatorType enum + :param: color color of activity indicator view + + :returns: The activity indicator view + */ convenience public init(frame: CGRect, type: NVActivityIndicatorType, color: UIColor?) { self.init(frame: frame, type: type, color: color, size: nil) } + /** + Create a activity indicator view with specified type and default color, size + + - Default color is white + - Default size is 40 + + :param: view view's frame + :param: value animation type, value of NVActivityIndicatorType enum + + :returns: The activity indicator view + */ convenience public init(frame: CGRect, type: NVActivityIndicatorType) { self.init(frame: frame, type: type, color: nil) } + /** + Start animation + */ public func startAnimation() { if (self.layer.sublayers == nil) { setUpAnimation() @@ -88,6 +135,9 @@ public class NVActivityIndicatorView: UIView { self.animating = true } + /** + Stop animation + */ public func stopAnimation() { self.layer.speed = 0 self.animating = false From 75abb2c08a5b64583776c8a3955ba44f3f28262f Mon Sep 17 00:00:00 2001 From: Nguyen Vinh Date: Fri, 14 Aug 2015 13:26:27 +0400 Subject: [PATCH 03/16] Set default animation type to pacman --- NVActivityIndicatorView/NVActivityIndicatorView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NVActivityIndicatorView/NVActivityIndicatorView.swift b/NVActivityIndicatorView/NVActivityIndicatorView.swift index 6fefa1c0..45799cb1 100644 --- a/NVActivityIndicatorView/NVActivityIndicatorView.swift +++ b/NVActivityIndicatorView/NVActivityIndicatorView.swift @@ -41,7 +41,7 @@ public enum NVActivityIndicatorType { } public class NVActivityIndicatorView: UIView { - private let DEFAULT_TYPE: NVActivityIndicatorType = .Blank + private let DEFAULT_TYPE: NVActivityIndicatorType = .Pacman private let DEFAULT_COLOR = UIColor.whiteColor() private let DEFAULT_SIZE: CGSize = CGSize(width: 40, height: 40) From 18bba002f1b36843e3a542a93ce76b5ce2ac8e1f Mon Sep 17 00:00:00 2001 From: Nguyen Vinh Date: Fri, 14 Aug 2015 13:27:02 +0400 Subject: [PATCH 04/16] Clean up podspec --- NVActivityIndicatorView.podspec | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/NVActivityIndicatorView.podspec b/NVActivityIndicatorView.podspec index 5fed4365..75769159 100644 --- a/NVActivityIndicatorView.podspec +++ b/NVActivityIndicatorView.podspec @@ -1,40 +1,18 @@ Pod::Spec.new do |s| - - # ――― Spec Metadata ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # - s.name = "NVActivityIndicatorView" s.version = "1.1" s.summary = "A collection of nice loading animations" - s.homepage = "https://github.com/ninjaprox/NVActivityIndicatorView" s.screenshots = "https://raw.githubusercontent.com/ninjaprox/NVActivityIndicatorView/master/Demo.gif" - - # ――― Spec License ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # - s.license = { :type => "MIT" } - - # ――― Author Metadata ――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # - s.author = { "Nguyen Vinh" => "ninjaprox@gmail.com" } s.social_media_url = "http://twitter.com/ninjaprox" - # ――― Platform Specifics ――――――――――――――――――――――――――――――――――――――――――――――――――――――― # - s.platform = :ios, '8.0' - # ――― Source Location ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # - s.source = { :git => "https://github.com/ninjaprox/NVActivityIndicatorView.git", :tag => "v1.1" } - - # ――― Source Code ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # - s.source_files = "NVActivityIndicatorView/**/*.swift" - # ――― Project Linking ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # s.frameworks = "UIKit", "QuartzCore" - - # ――― Project Settings ――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # - s.requires_arc = true - end From 2f90978ad995e54fd1d556d4cdf562ef691c9cf9 Mon Sep 17 00:00:00 2001 From: Nguyen Vinh Date: Fri, 14 Aug 2015 13:37:34 +0400 Subject: [PATCH 05/16] Update version 1.2 --- NVActivityIndicatorView.podspec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/NVActivityIndicatorView.podspec b/NVActivityIndicatorView.podspec index 75769159..1a8e1c11 100644 --- a/NVActivityIndicatorView.podspec +++ b/NVActivityIndicatorView.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "NVActivityIndicatorView" - s.version = "1.1" + s.version = "1.2" s.summary = "A collection of nice loading animations" s.homepage = "https://github.com/ninjaprox/NVActivityIndicatorView" s.screenshots = "https://raw.githubusercontent.com/ninjaprox/NVActivityIndicatorView/master/Demo.gif" @@ -10,7 +10,7 @@ Pod::Spec.new do |s| s.platform = :ios, '8.0' - s.source = { :git => "https://github.com/ninjaprox/NVActivityIndicatorView.git", :tag => "v1.1" } + s.source = { :git => "https://github.com/ninjaprox/NVActivityIndicatorView.git", :tag => "v1.2" } s.source_files = "NVActivityIndicatorView/**/*.swift" s.frameworks = "UIKit", "QuartzCore" From 535ee806c129cb50e8ecd4d1a0a60e87814d84c0 Mon Sep 17 00:00:00 2001 From: Nguyen Vinh Date: Fri, 14 Aug 2015 14:02:57 +0400 Subject: [PATCH 06/16] Update README for version 1.2 --- README.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 68f4d15d..9cf38f2f 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,8 @@ $ gem install cocoapods Add NVActivityIndicatorView in your `Podfile` ```bash +use_frameworks! + pod 'NVActivityIndicatorView' ``` @@ -41,7 +43,16 @@ Copy NVActivityIndicatorView folder to your project. That's it. # Usage -There are 3 ways you can do: +Firstly, import NVActivityIndicatorView + +```swift +import NVActivityIndicatorView +``` + +Then, there are 4 ways you can do: + +- Use it in storyboard by changing class of any `UIView` to `NVActivityIndicatorView` +This will use default values 40, white, .Pacman for size, color and type respectively. - Create with specified type and size 40, color white as default From b03a66b34b8910dcccb4048ae675ccbe291920b8 Mon Sep 17 00:00:00 2001 From: Nguyen Vinh Date: Fri, 14 Aug 2015 14:05:15 +0400 Subject: [PATCH 07/16] Update CHANGELOG for version 1.2 --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 640cc568..2fa01e23 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Change log +## [v1.2](https://github.com/ninjaprox/NVActivityIndicatorView/releases/tag/v1.2) +* Fix issue when using as framework +* Set default animation type to pacman +* Add documentation + ## [v1.1](https://github.com/ninjaprox/NVActivityIndicatorView/releases/tag/v1.1) * Change project structure to work well with CocoaPods From f8fbac51b47328119c8aac553cd6cea2f5e5cd33 Mon Sep 17 00:00:00 2001 From: Marvin Nazari Date: Sun, 16 Aug 2015 22:49:08 +0200 Subject: [PATCH 08/16] added hidesWhenStopped property --- NVActivityIndicatorView/NVActivityIndicatorView.swift | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/NVActivityIndicatorView/NVActivityIndicatorView.swift b/NVActivityIndicatorView/NVActivityIndicatorView.swift index 45799cb1..528098bf 100644 --- a/NVActivityIndicatorView/NVActivityIndicatorView.swift +++ b/NVActivityIndicatorView/NVActivityIndicatorView.swift @@ -50,6 +50,7 @@ public class NVActivityIndicatorView: UIView { private var size: CGSize var animating: Bool = false + var hidesWhenStopped: Bool = true /** Create a activity indicator view with default type, color and size @@ -128,6 +129,9 @@ public class NVActivityIndicatorView: UIView { Start animation */ public func startAnimation() { + if hidesWhenStopped && hidden { + hidden = false + } if (self.layer.sublayers == nil) { setUpAnimation() } @@ -141,6 +145,9 @@ public class NVActivityIndicatorView: UIView { public func stopAnimation() { self.layer.speed = 0 self.animating = false + if hidesWhenStopped && !hidden { + hidden = true + } } // MARK: Privates From b9a3cad01db2d7f2319334019a2234c01597e5c4 Mon Sep 17 00:00:00 2001 From: gregttn Date: Sun, 23 Aug 2015 18:49:37 +0100 Subject: [PATCH 09/16] Use default parameters instead of optional parameters. The two convenience constructors which pass nil to indicate absent optional can be removed. Also there is no need to use optional binding since there will always be a value passed in for color and size. --- .../NVActivityIndicatorView.swift | 61 ++++--------------- 1 file changed, 12 insertions(+), 49 deletions(-) diff --git a/NVActivityIndicatorView/NVActivityIndicatorView.swift b/NVActivityIndicatorView/NVActivityIndicatorView.swift index 528098bf..2dd2b26f 100644 --- a/NVActivityIndicatorView/NVActivityIndicatorView.swift +++ b/NVActivityIndicatorView/NVActivityIndicatorView.swift @@ -41,9 +41,9 @@ public enum NVActivityIndicatorType { } public class NVActivityIndicatorView: UIView { - private let DEFAULT_TYPE: NVActivityIndicatorType = .Pacman - private let DEFAULT_COLOR = UIColor.whiteColor() - private let DEFAULT_SIZE: CGSize = CGSize(width: 40, height: 40) + private static let DEFAULT_TYPE: NVActivityIndicatorType = .Pacman + private static let DEFAULT_COLOR = UIColor.whiteColor() + private static let DEFAULT_SIZE: CGSize = CGSize(width: 40, height: 40) private var type: NVActivityIndicatorType private var color: UIColor @@ -65,9 +65,9 @@ public class NVActivityIndicatorView: UIView { :returns: The activity indicator view */ required public init(coder aDecoder: NSCoder) { - self.type = DEFAULT_TYPE - self.color = DEFAULT_COLOR - self.size = DEFAULT_SIZE + self.type = NVActivityIndicatorView.DEFAULT_TYPE + self.color = NVActivityIndicatorView.DEFAULT_COLOR + self.size = NVActivityIndicatorView.DEFAULT_SIZE super.init(coder: aDecoder); } @@ -75,54 +75,17 @@ public class NVActivityIndicatorView: UIView { Create a activity indicator view with specified type, color, size and size :param: frame view's frame - :param: type animation type, value of NVActivityIndicatorType enum - :param: color color of activity indicator view - :param: size actual size of animation in view + :param: type animation type, value of NVActivityIndicatorType enum. Default type is pacman. + :param: color color of activity indicator view. Default color is white. + :param: size actual size of animation in view. Default size is 40 :returns: The activity indicator view */ - public init(frame: CGRect, type: NVActivityIndicatorType, color: UIColor?, size: CGSize?) { + public init(frame: CGRect, type: NVActivityIndicatorType = DEFAULT_TYPE, color: UIColor = DEFAULT_COLOR, size: CGSize = DEFAULT_SIZE) { self.type = type - self.color = DEFAULT_COLOR - self.size = DEFAULT_SIZE + self.color = color + self.size = size super.init(frame: frame) - - if let _color = color { - self.color = _color - } - if let _size = size { - self.size = _size - } - } - - /** - Create a activity indicator view with specified type, color and default size - - - Default size is 40 - - :param: frame view's frame - :param: value animation type, value of NVActivityIndicatorType enum - :param: color color of activity indicator view - - :returns: The activity indicator view - */ - convenience public init(frame: CGRect, type: NVActivityIndicatorType, color: UIColor?) { - self.init(frame: frame, type: type, color: color, size: nil) - } - - /** - Create a activity indicator view with specified type and default color, size - - - Default color is white - - Default size is 40 - - :param: view view's frame - :param: value animation type, value of NVActivityIndicatorType enum - - :returns: The activity indicator view - */ - convenience public init(frame: CGRect, type: NVActivityIndicatorType) { - self.init(frame: frame, type: type, color: nil) } /** From 123e34f98cc8d66cd2cba2a074a52f98bc6ff018 Mon Sep 17 00:00:00 2001 From: gregttn Date: Sun, 23 Aug 2015 19:07:12 +0100 Subject: [PATCH 10/16] The function mapping the NVActivityIndicatorType value to its delegate object moved to the NVActivityIndicatorType enum itself. This way the delegate object can be accessed directly of the enum value --- .../NVActivityIndicatorView.swift | 130 +++++++++--------- 1 file changed, 65 insertions(+), 65 deletions(-) diff --git a/NVActivityIndicatorView/NVActivityIndicatorView.swift b/NVActivityIndicatorView/NVActivityIndicatorView.swift index 2dd2b26f..7a33fed2 100644 --- a/NVActivityIndicatorView/NVActivityIndicatorView.swift +++ b/NVActivityIndicatorView/NVActivityIndicatorView.swift @@ -38,6 +38,69 @@ public enum NVActivityIndicatorType { case Pacman case BallGridBeat case SemiCircleSpin + + private func animation() -> NVActivityIndicatorAnimationDelegate { + switch self { + case .Blank: + return NVActivityIndicatorAnimationBlank() + case .BallPulse: + return NVActivityIndicatorAnimationBallPulse() + case .BallGridPulse: + return NVActivityIndicatorAnimationBallGridPulse() + case .BallClipRotate: + return NVActivityIndicatorAnimationBallClipRotate() + case .SquareSpin: + return NVActivityIndicatorAnimationSquareSpin() + case .BallClipRotatePulse: + return NVActivityIndicatorAnimationBallClipRotatePulse() + case .BallClipRotateMultiple: + return NVActivityIndicatorAnimationBallClipRotateMultiple() + case .BallPulseRise: + return NVActivityIndicatorAnimationBallPulseRise() + case .BallRotate: + return NVActivityIndicatorAnimationBallRotate() + case .CubeTransition: + return NVActivityIndicatorAnimationCubeTransition() + case .BallZigZag: + return NVActivityIndicatorAnimationBallZigZag() + case .BallZigZagDeflect: + return NVActivityIndicatorAnimationBallZigZagDeflect() + case .BallTrianglePath: + return NVActivityIndicatorAnimationBallTrianglePath() + case .BallScale: + return NVActivityIndicatorAnimationBallScale() + case .LineScale: + return NVActivityIndicatorAnimationLineScale() + case .LineScaleParty: + return NVActivityIndicatorAnimationLineScaleParty() + case .BallScaleMultiple: + return NVActivityIndicatorAnimationBallScaleMultiple() + case .BallPulseSync: + return NVActivityIndicatorAnimationBallPulseSync() + case .BallBeat: + return NVActivityIndicatorAnimationBallBeat() + case .LineScalePulseOut: + return NVActivityIndicatorAnimationLineScalePulseOut() + case .LineScalePulseOutRapid: + return NVActivityIndicatorAnimationLineScalePulseOutRapid() + case .BallScaleRipple: + return NVActivityIndicatorAnimationBallScaleRipple() + case .BallScaleRippleMultiple: + return NVActivityIndicatorAnimationBallScaleRippleMultiple() + case .BallSpinFadeLoader: + return NVActivityIndicatorAnimationBallSpinFadeLoader() + case .LineSpinFadeLoader: + return NVActivityIndicatorAnimationLineSpinFadeLoader() + case .TriangleSkewSpin: + return NVActivityIndicatorAnimationTriangleSkewSpin() + case .Pacman: + return NVActivityIndicatorAnimationPacman() + case .BallGridBeat: + return NVActivityIndicatorAnimationBallGridBeat() + case .SemiCircleSpin: + return NVActivityIndicatorAnimationSemiCircleSpin() + } + } } public class NVActivityIndicatorView: UIView { @@ -114,74 +177,11 @@ public class NVActivityIndicatorView: UIView { } // MARK: Privates - + private func setUpAnimation() { - let animation: protocol = animationOfType(self.type) + let animation: protocol = self.type.animation() self.layer.sublayers = nil animation.setUpAnimationInLayer(self.layer, size: self.size, color: self.color) } - - private func animationOfType(type: NVActivityIndicatorType) -> protocol { - switch type { - case .Blank: - return NVActivityIndicatorAnimationBlank() - case .BallPulse: - return NVActivityIndicatorAnimationBallPulse() - case .BallGridPulse: - return NVActivityIndicatorAnimationBallGridPulse() - case .BallClipRotate: - return NVActivityIndicatorAnimationBallClipRotate() - case .SquareSpin: - return NVActivityIndicatorAnimationSquareSpin() - case .BallClipRotatePulse: - return NVActivityIndicatorAnimationBallClipRotatePulse() - case .BallClipRotateMultiple: - return NVActivityIndicatorAnimationBallClipRotateMultiple() - case .BallPulseRise: - return NVActivityIndicatorAnimationBallPulseRise() - case .BallRotate: - return NVActivityIndicatorAnimationBallRotate() - case .CubeTransition: - return NVActivityIndicatorAnimationCubeTransition() - case .BallZigZag: - return NVActivityIndicatorAnimationBallZigZag() - case .BallZigZagDeflect: - return NVActivityIndicatorAnimationBallZigZagDeflect() - case .BallTrianglePath: - return NVActivityIndicatorAnimationBallTrianglePath() - case .BallScale: - return NVActivityIndicatorAnimationBallScale() - case .LineScale: - return NVActivityIndicatorAnimationLineScale() - case .LineScaleParty: - return NVActivityIndicatorAnimationLineScaleParty() - case .BallScaleMultiple: - return NVActivityIndicatorAnimationBallScaleMultiple() - case .BallPulseSync: - return NVActivityIndicatorAnimationBallPulseSync() - case .BallBeat: - return NVActivityIndicatorAnimationBallBeat() - case .LineScalePulseOut: - return NVActivityIndicatorAnimationLineScalePulseOut() - case .LineScalePulseOutRapid: - return NVActivityIndicatorAnimationLineScalePulseOutRapid() - case .BallScaleRipple: - return NVActivityIndicatorAnimationBallScaleRipple() - case .BallScaleRippleMultiple: - return NVActivityIndicatorAnimationBallScaleRippleMultiple() - case .BallSpinFadeLoader: - return NVActivityIndicatorAnimationBallSpinFadeLoader() - case .LineSpinFadeLoader: - return NVActivityIndicatorAnimationLineSpinFadeLoader() - case .TriangleSkewSpin: - return NVActivityIndicatorAnimationTriangleSkewSpin() - case .Pacman: - return NVActivityIndicatorAnimationPacman() - case .BallGridBeat: - return NVActivityIndicatorAnimationBallGridBeat() - case .SemiCircleSpin: - return NVActivityIndicatorAnimationSemiCircleSpin() - } - } } From 707fa9e4c11fa50103d0924f536aeb7b33d7b96d Mon Sep 17 00:00:00 2001 From: gregttn Date: Mon, 24 Aug 2015 09:18:17 +0100 Subject: [PATCH 11/16] amended README.md to reflect changes in the constructors --- README.md | 39 +++++++++++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 9cf38f2f..ba9daabd 100644 --- a/README.md +++ b/README.md @@ -49,28 +49,55 @@ Firstly, import NVActivityIndicatorView import NVActivityIndicatorView ``` -Then, there are 4 ways you can do: +Then, there are multiple ways you can create NVActivityIndicatorView: - Use it in storyboard by changing class of any `UIView` to `NVActivityIndicatorView` This will use default values 40, white, .Pacman for size, color and type respectively. -- Create with specified type and size 40, color white as default +- Create with specified type, color and size ```swift -NVActivityIndicatorView(frame: frame, type: type) +NVActivityIndicatorView(frame: frame, type: type, color: color, size: size) ``` -- Create with specified type, color and size 40 as default +Any of the last three arguments can be omitted. If an argument is omitted it will use the defailt values which are 40, white, .Pacman for size, color and type respectively. +Therefore, you can also create NVActivityIndicatorView using any of the following: +- specify only frame, type and color ```swift NVActivityIndicatorView(frame: frame, type: type, color: color) ``` -- Create with specified type, color, size +- specify only frame, type and size +```swift +NVActivityIndicatorView(frame: frame, type: type, size: size) +``` +- specify only frame, size and color ```swift -NVActivityIndicatorView(frame: frame, type: type, color: color, size: size) +NVActivityIndicatorView(frame: frame, size: size, color: color) ``` + +- specify only frame and type +```swift +NVActivityIndicatorView(frame: frame, type: type) +``` + +- specify only frame and color +```swift +NVActivityIndicatorView(frame: frame, color: color) +``` + +- specify only frame and size +```swift +NVActivityIndicatorView(frame: frame, size: size) +``` + +- specify only frame +```swift +NVActivityIndicatorView(frame: frame) +``` + # Acknowledgment Thanks [Connor Atherton](https://github.com/ConnorAtherton) for great loaders and [Danil Gontovnik](https://github.com/gontovnik) for kick-start. From 027724b3df06570969cbfa49a31c7f76dc6027fc Mon Sep 17 00:00:00 2001 From: Grzegorz Tatarzyn Date: Mon, 24 Aug 2015 09:21:44 +0100 Subject: [PATCH 12/16] typo fix --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ba9daabd..d11962cf 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ This will use default values 40, white, .Pacman for size, color and type respect NVActivityIndicatorView(frame: frame, type: type, color: color, size: size) ``` -Any of the last three arguments can be omitted. If an argument is omitted it will use the defailt values which are 40, white, .Pacman for size, color and type respectively. +Any of the last three arguments can be omitted. If an argument is omitted it will use the default values which are 40, white, .Pacman for size, color and type respectively. Therefore, you can also create NVActivityIndicatorView using any of the following: - specify only frame, type and color @@ -106,4 +106,4 @@ Thanks [Connor Atherton](https://github.com/ConnorAtherton) for great loaders an The MIT License (MIT) -Copyright (c) 2015 Nguyen Vinh [@ninjaprox](http://twitter.com/ninjaprox) \ No newline at end of file +Copyright (c) 2015 Nguyen Vinh [@ninjaprox](http://twitter.com/ninjaprox) From beb28475ff83bf510de65109f608505b63a0c001 Mon Sep 17 00:00:00 2001 From: Nguyen Vinh Date: Fri, 4 Sep 2015 11:31:59 +0400 Subject: [PATCH 13/16] Update version to 1.3 --- NVActivityIndicatorView.podspec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/NVActivityIndicatorView.podspec b/NVActivityIndicatorView.podspec index 1a8e1c11..d7f303b7 100644 --- a/NVActivityIndicatorView.podspec +++ b/NVActivityIndicatorView.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "NVActivityIndicatorView" - s.version = "1.2" + s.version = "1.3" s.summary = "A collection of nice loading animations" s.homepage = "https://github.com/ninjaprox/NVActivityIndicatorView" s.screenshots = "https://raw.githubusercontent.com/ninjaprox/NVActivityIndicatorView/master/Demo.gif" @@ -10,7 +10,7 @@ Pod::Spec.new do |s| s.platform = :ios, '8.0' - s.source = { :git => "https://github.com/ninjaprox/NVActivityIndicatorView.git", :tag => "v1.2" } + s.source = { :git => "https://github.com/ninjaprox/NVActivityIndicatorView.git", :tag => "v1.3" } s.source_files = "NVActivityIndicatorView/**/*.swift" s.frameworks = "UIKit", "QuartzCore" From 25d921e0b9bac4e73c8fa1fe6720e7b75c3c6478 Mon Sep 17 00:00:00 2001 From: Nguyen Vinh Date: Fri, 4 Sep 2015 11:35:25 +0400 Subject: [PATCH 14/16] Update CHANGELOG for version 1.3 --- CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2fa01e23..b0a457dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Change log +## [v1.3](https://github.com/ninjaprox/NVActivityIndicatorView/releases/tag/v1.3) +* More convenient constructor +* Hide when stopped option + ## [v1.2](https://github.com/ninjaprox/NVActivityIndicatorView/releases/tag/v1.2) * Fix issue when using as framework * Set default animation type to pacman @@ -13,4 +17,4 @@ ## [v1.0](https://github.com/ninjaprox/NVActivityIndicatorView/releases/tag/v1.0) * Initial release -* Full implementations of 28 loaders from loaders.css \ No newline at end of file +* Full implementations of 28 loaders from loaders.css From 9165d9548a3898faca912c947633ff855628a4d0 Mon Sep 17 00:00:00 2001 From: Nguyen Vinh Date: Fri, 18 Sep 2015 13:59:04 +0400 Subject: [PATCH 15/16] Update to Swift 2.0 syntax --- ...ndicatorAnimationBallClipRotateMultiple.swift | 4 ++-- ...tyIndicatorAnimationBallClipRotatePulse.swift | 4 ++-- ...ActivityIndicatorAnimationBallPulseRise.swift | 4 ++-- ...ityIndicatorAnimationBallSpinFadeLoader.swift | 2 +- .../NVActivityIndicatorAnimationBallZigZag.swift | 2 +- ...vityIndicatorAnimationBallZigZagDeflect.swift | 2 +- ...ityIndicatorAnimationLineSpinFadeLoader.swift | 2 +- .../NVActivityIndicatorAnimationSquareSpin.swift | 4 ++-- ...ivityIndicatorAnimationTriangleSkewSpin.swift | 4 ++-- .../NVActivityIndicatorShape.swift | 2 +- .../NVActivityIndicatorView.swift | 16 ++++++++-------- .../project.pbxproj | 2 ++ 12 files changed, 25 insertions(+), 23 deletions(-) diff --git a/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallClipRotateMultiple.swift b/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallClipRotateMultiple.swift index 8eca2ffa..637a5a0b 100644 --- a/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallClipRotateMultiple.swift +++ b/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallClipRotateMultiple.swift @@ -31,7 +31,7 @@ class NVActivityIndicatorAnimationBallClipRotateMultiple: NVActivityIndicatorAni color: color, reverse: true) } - func createAnimationIn(# duration: CFTimeInterval, timingFunction: CAMediaTimingFunction, reverse: Bool) -> CAAnimation { + func createAnimationIn(duration duration: CFTimeInterval, timingFunction: CAMediaTimingFunction, reverse: Bool) -> CAAnimation { // Scale animation let scaleAnimation = CAKeyframeAnimation(keyPath: "transform.scale") @@ -63,7 +63,7 @@ class NVActivityIndicatorAnimationBallClipRotateMultiple: NVActivityIndicatorAni return animation } - func circleOf(# shape: NVActivityIndicatorShape, duration: CFTimeInterval, timingFunction: CAMediaTimingFunction, layer: CALayer, size: CGFloat, color: UIColor, reverse: Bool) { + func circleOf(shape shape: NVActivityIndicatorShape, duration: CFTimeInterval, timingFunction: CAMediaTimingFunction, layer: CALayer, size: CGFloat, color: UIColor, reverse: Bool) { let circle = shape.createLayerWith(size: CGSize(width: size, height: size), color: color) let frame = CGRect(x: (layer.bounds.size.width - size) / 2, y: (layer.bounds.size.height - size) / 2, diff --git a/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallClipRotatePulse.swift b/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallClipRotatePulse.swift index 2fd231ae..ba990f8e 100644 --- a/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallClipRotatePulse.swift +++ b/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallClipRotatePulse.swift @@ -18,7 +18,7 @@ class NVActivityIndicatorAnimationBallClipRotatePulse: NVActivityIndicatorAnimat bigCircleWith(duration: duration, timingFunction: timingFunction, layer: layer, size: size, color: color) } - func smallCircleWith(# duration: CFTimeInterval, timingFunction: CAMediaTimingFunction, layer: CALayer, size: CGSize, color: UIColor) { + func smallCircleWith(duration duration: CFTimeInterval, timingFunction: CAMediaTimingFunction, layer: CALayer, size: CGSize, color: UIColor) { // Animation let animation = CAKeyframeAnimation(keyPath:"transform.scale") @@ -42,7 +42,7 @@ class NVActivityIndicatorAnimationBallClipRotatePulse: NVActivityIndicatorAnimat layer.addSublayer(circle) } - func bigCircleWith(# duration: CFTimeInterval, timingFunction: CAMediaTimingFunction, layer: CALayer, size: CGSize, color: UIColor) { + func bigCircleWith(duration duration: CFTimeInterval, timingFunction: CAMediaTimingFunction, layer: CALayer, size: CGSize, color: UIColor) { // Scale animation let scaleAnimation = CAKeyframeAnimation(keyPath:"transform.scale") diff --git a/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallPulseRise.swift b/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallPulseRise.swift index eb40ee0f..b9596507 100644 --- a/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallPulseRise.swift +++ b/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallPulseRise.swift @@ -39,7 +39,7 @@ class NVActivityIndicatorAnimationBallPulseRise: NVActivityIndicatorAnimationDel } } - func oddAnimation(# duration: CFTimeInterval, deltaY: CGFloat, timingFunction: CAMediaTimingFunction) -> CAAnimation { + func oddAnimation(duration duration: CFTimeInterval, deltaY: CGFloat, timingFunction: CAMediaTimingFunction) -> CAAnimation { // Scale animation let scaleAnimation = CAKeyframeAnimation(keyPath: "transform.scale") @@ -66,7 +66,7 @@ class NVActivityIndicatorAnimationBallPulseRise: NVActivityIndicatorAnimationDel return animation } - func evenAnimation(# duration: CFTimeInterval, deltaY: CGFloat, timingFunction: CAMediaTimingFunction) -> CAAnimation { + func evenAnimation(duration duration: CFTimeInterval, deltaY: CGFloat, timingFunction: CAMediaTimingFunction) -> CAAnimation { // Scale animation let scaleAnimation = CAKeyframeAnimation(keyPath: "transform.scale") diff --git a/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallSpinFadeLoader.swift b/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallSpinFadeLoader.swift index c5f3ae23..c40cb80f 100644 --- a/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallSpinFadeLoader.swift +++ b/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallSpinFadeLoader.swift @@ -56,7 +56,7 @@ class NVActivityIndicatorAnimationBallSpinFadeLoader: NVActivityIndicatorAnimati } } - func circleAt(# angle: CGFloat, size: CGFloat, origin: CGPoint, containerSize: CGSize, color: UIColor) -> CALayer { + func circleAt(angle angle: CGFloat, size: CGFloat, origin: CGPoint, containerSize: CGSize, color: UIColor) -> CALayer { let radius = containerSize.width / 2 let circle = NVActivityIndicatorShape.Circle.createLayerWith(size: CGSize(width: size, height: size), color: color) let frame = CGRect( diff --git a/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallZigZag.swift b/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallZigZag.swift index 19152029..211c4f5d 100644 --- a/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallZigZag.swift +++ b/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallZigZag.swift @@ -45,7 +45,7 @@ class NVActivityIndicatorAnimationBallZigZag: NVActivityIndicatorAnimationDelega circleAt(frame: frame, layer: layer, size: CGSize(width: circleSize, height: circleSize), color: color, animation: animation) } - func circleAt(# frame: CGRect, layer: CALayer, size: CGSize, color: UIColor, animation: CAAnimation) { + func circleAt(frame frame: CGRect, layer: CALayer, size: CGSize, color: UIColor, animation: CAAnimation) { let circle = NVActivityIndicatorShape.Circle.createLayerWith(size: size, color: color) circle.frame = frame diff --git a/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallZigZagDeflect.swift b/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallZigZagDeflect.swift index 87932979..a376211f 100644 --- a/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallZigZagDeflect.swift +++ b/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallZigZagDeflect.swift @@ -45,7 +45,7 @@ class NVActivityIndicatorAnimationBallZigZagDeflect: NVActivityIndicatorAnimatio circleAt(frame: frame, layer: layer, size: CGSize(width: circleSize, height: circleSize), color: color, animation: animation) } - func circleAt(# frame: CGRect, layer: CALayer, size: CGSize, color: UIColor, animation: CAAnimation) { + func circleAt(frame frame: CGRect, layer: CALayer, size: CGSize, color: UIColor, animation: CAAnimation) { let circle = NVActivityIndicatorShape.Circle.createLayerWith(size: size, color: color) circle.frame = frame diff --git a/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationLineSpinFadeLoader.swift b/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationLineSpinFadeLoader.swift index bfd76c12..9da9172c 100644 --- a/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationLineSpinFadeLoader.swift +++ b/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationLineSpinFadeLoader.swift @@ -44,7 +44,7 @@ class NVActivityIndicatorAnimationLineSpinFadeLoader: NVActivityIndicatorAnimati } } - func lineAt(# angle: CGFloat, size: CGSize, origin: CGPoint, containerSize: CGSize, color: UIColor) -> CALayer { + func lineAt(angle angle: CGFloat, size: CGSize, origin: CGPoint, containerSize: CGSize, color: UIColor) -> CALayer { let radius = containerSize.width / 2 let lineContainerSize = CGSize(width: max(size.width, size.height), height: max(size.width, size.height)) let lineContainer = CALayer() diff --git a/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationSquareSpin.swift b/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationSquareSpin.swift index 07894064..4a723498 100644 --- a/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationSquareSpin.swift +++ b/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationSquareSpin.swift @@ -41,7 +41,7 @@ class NVActivityIndicatorAnimationSquareSpin: NVActivityIndicatorAnimationDelega layer.addSublayer(square) } - func createRotateXTransform(# angle: CGFloat) -> CATransform3D { + func createRotateXTransform(angle angle: CGFloat) -> CATransform3D { var transform = CATransform3DMakeRotation(angle, 1, 0, 0) transform.m34 = CGFloat(-1) / 100 @@ -49,7 +49,7 @@ class NVActivityIndicatorAnimationSquareSpin: NVActivityIndicatorAnimationDelega return transform } - func createRotateYTransform(# angle: CGFloat) -> CATransform3D { + func createRotateYTransform(angle angle: CGFloat) -> CATransform3D { var transform = CATransform3DMakeRotation(angle, 0, 1, 0) transform.m34 = CGFloat(-1) / 100 diff --git a/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationTriangleSkewSpin.swift b/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationTriangleSkewSpin.swift index af6a5b5a..738f931d 100644 --- a/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationTriangleSkewSpin.swift +++ b/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationTriangleSkewSpin.swift @@ -39,7 +39,7 @@ class NVActivityIndicatorAnimationTriangleSkewSpin: NVActivityIndicatorAnimation layer.addSublayer(triangle) } - func createRotateXTransform(# angle: CGFloat) -> CATransform3D { + func createRotateXTransform(angle angle: CGFloat) -> CATransform3D { var transform = CATransform3DMakeRotation(angle, 1, 0, 0) transform.m34 = CGFloat(-1) / 100 @@ -47,7 +47,7 @@ class NVActivityIndicatorAnimationTriangleSkewSpin: NVActivityIndicatorAnimation return transform } - func createRotateYTransform(# angle: CGFloat) -> CATransform3D { + func createRotateYTransform(angle angle: CGFloat) -> CATransform3D { var transform = CATransform3DMakeRotation(angle, 0, 1, 0) transform.m34 = CGFloat(-1) / 100 diff --git a/NVActivityIndicatorView/NVActivityIndicatorShape.swift b/NVActivityIndicatorView/NVActivityIndicatorShape.swift index deed3ae4..a7b691ac 100644 --- a/NVActivityIndicatorView/NVActivityIndicatorShape.swift +++ b/NVActivityIndicatorView/NVActivityIndicatorShape.swift @@ -20,7 +20,7 @@ enum NVActivityIndicatorShape { case Line case Pacman - func createLayerWith(# size: CGSize, color: UIColor) -> CALayer { + func createLayerWith(size size: CGSize, color: UIColor) -> CALayer { let layer: CAShapeLayer = CAShapeLayer() var path: UIBezierPath = UIBezierPath() let lineWidth: CGFloat = 2 diff --git a/NVActivityIndicatorView/NVActivityIndicatorView.swift b/NVActivityIndicatorView/NVActivityIndicatorView.swift index 7a33fed2..eefd83a0 100644 --- a/NVActivityIndicatorView/NVActivityIndicatorView.swift +++ b/NVActivityIndicatorView/NVActivityIndicatorView.swift @@ -123,11 +123,11 @@ public class NVActivityIndicatorView: UIView { - Default color is white\n - Default size is 40 - :param: decoder + - parameter decoder: - :returns: The activity indicator view + - returns: The activity indicator view */ - required public init(coder aDecoder: NSCoder) { + required public init?(coder aDecoder: NSCoder) { self.type = NVActivityIndicatorView.DEFAULT_TYPE self.color = NVActivityIndicatorView.DEFAULT_COLOR self.size = NVActivityIndicatorView.DEFAULT_SIZE @@ -137,12 +137,12 @@ public class NVActivityIndicatorView: UIView { /** Create a activity indicator view with specified type, color, size and size - :param: frame view's frame - :param: type animation type, value of NVActivityIndicatorType enum. Default type is pacman. - :param: color color of activity indicator view. Default color is white. - :param: size actual size of animation in view. Default size is 40 + - parameter frame: view's frame + - parameter type: animation type, value of NVActivityIndicatorType enum. Default type is pacman. + - parameter color: color of activity indicator view. Default color is white. + - parameter size: actual size of animation in view. Default size is 40 - :returns: The activity indicator view + - returns: The activity indicator view */ public init(frame: CGRect, type: NVActivityIndicatorType = DEFAULT_TYPE, color: UIColor = DEFAULT_COLOR, size: CGSize = DEFAULT_SIZE) { self.type = type diff --git a/NVActivityIndicatorViewDemo.xcodeproj/project.pbxproj b/NVActivityIndicatorViewDemo.xcodeproj/project.pbxproj index f56f0588..ca83c6cc 100644 --- a/NVActivityIndicatorViewDemo.xcodeproj/project.pbxproj +++ b/NVActivityIndicatorViewDemo.xcodeproj/project.pbxproj @@ -268,6 +268,8 @@ 239CAB181B5EBB2E0051DC06 /* Project object */ = { isa = PBXProject; attributes = { + LastSwiftMigration = 0700; + LastSwiftUpdateCheck = 0700; LastUpgradeCheck = 0640; ORGANIZATIONNAME = "Nguyen Vinh"; TargetAttributes = { From 1f084c81517544892496cdfbd6bc683fd224652e Mon Sep 17 00:00:00 2001 From: Nguyen Vinh Date: Fri, 18 Sep 2015 14:02:36 +0400 Subject: [PATCH 16/16] Clear warnings --- ...VActivityIndicatorAnimationBallClipRotateMultiple.swift | 1 - NVActivityIndicatorView/NVActivityIndicatorShape.swift | 6 ------ NVActivityIndicatorViewDemo.xcodeproj/project.pbxproj | 7 ++++++- NVActivityIndicatorViewDemo/Info.plist | 2 +- NVActivityIndicatorViewDemoTests/Info.plist | 2 +- 5 files changed, 8 insertions(+), 10 deletions(-) diff --git a/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallClipRotateMultiple.swift b/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallClipRotateMultiple.swift index 637a5a0b..266ee7ff 100644 --- a/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallClipRotateMultiple.swift +++ b/NVActivityIndicatorView/Animations/NVActivityIndicatorAnimationBallClipRotateMultiple.swift @@ -14,7 +14,6 @@ class NVActivityIndicatorAnimationBallClipRotateMultiple: NVActivityIndicatorAni let bigCircleSize: CGFloat = size.width let smallCircleSize: CGFloat = size.width / 2 let longDuration: CFTimeInterval = 1 - let shortDuration: CFTimeInterval = 0.5 let timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut) circleOf(shape: .RingTwoHalfHorizontal, diff --git a/NVActivityIndicatorView/NVActivityIndicatorShape.swift b/NVActivityIndicatorView/NVActivityIndicatorShape.swift index a7b691ac..87757ff5 100644 --- a/NVActivityIndicatorView/NVActivityIndicatorShape.swift +++ b/NVActivityIndicatorView/NVActivityIndicatorShape.swift @@ -34,8 +34,6 @@ enum NVActivityIndicatorShape { clockwise: false); layer.fillColor = color.CGColor case .CircleSemi: - let radius = CGFloat(size.width / 2) - path.addArcWithCenter(CGPoint(x: size.width / 2, y: size.height / 2), radius: size.width / 2, startAngle: CGFloat(-M_PI / 6), @@ -53,8 +51,6 @@ enum NVActivityIndicatorShape { layer.strokeColor = color.CGColor layer.lineWidth = lineWidth case .RingTwoHalfVertical: - let radius = CGFloat(size.width / 2) - path.addArcWithCenter(CGPoint(x: size.width / 2, y: size.height / 2), radius:size.width / 2, startAngle:CGFloat(-3 * M_PI_4), @@ -73,8 +69,6 @@ enum NVActivityIndicatorShape { layer.strokeColor = color.CGColor layer.lineWidth = lineWidth case .RingTwoHalfHorizontal: - let radius = size.width / 2 - path.addArcWithCenter(CGPoint(x: size.width / 2, y: size.height / 2), radius:size.width / 2, startAngle:CGFloat(3 * M_PI_4), diff --git a/NVActivityIndicatorViewDemo.xcodeproj/project.pbxproj b/NVActivityIndicatorViewDemo.xcodeproj/project.pbxproj index ca83c6cc..9c7a6e9c 100644 --- a/NVActivityIndicatorViewDemo.xcodeproj/project.pbxproj +++ b/NVActivityIndicatorViewDemo.xcodeproj/project.pbxproj @@ -270,7 +270,7 @@ attributes = { LastSwiftMigration = 0700; LastSwiftUpdateCheck = 0700; - LastUpgradeCheck = 0640; + LastUpgradeCheck = 0700; ORGANIZATIONNAME = "Nguyen Vinh"; TargetAttributes = { 239CAB1F1B5EBB2E0051DC06 = { @@ -422,6 +422,7 @@ COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -488,6 +489,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = NVActivityIndicatorViewDemo/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "me.nvin.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -498,6 +500,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = NVActivityIndicatorViewDemo/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "me.nvin.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -516,6 +519,7 @@ ); INFOPLIST_FILE = NVActivityIndicatorViewDemoTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "me.nvin.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/NVActivityIndicatorViewDemo.app/NVActivityIndicatorViewDemo"; }; @@ -531,6 +535,7 @@ ); INFOPLIST_FILE = NVActivityIndicatorViewDemoTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "me.nvin.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/NVActivityIndicatorViewDemo.app/NVActivityIndicatorViewDemo"; }; diff --git a/NVActivityIndicatorViewDemo/Info.plist b/NVActivityIndicatorViewDemo/Info.plist index 83e27e9e..6c48029d 100644 --- a/NVActivityIndicatorViewDemo/Info.plist +++ b/NVActivityIndicatorViewDemo/Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier - me.nvin.$(PRODUCT_NAME:rfc1034identifier) + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/NVActivityIndicatorViewDemoTests/Info.plist b/NVActivityIndicatorViewDemoTests/Info.plist index 39de107f..ba72822e 100644 --- a/NVActivityIndicatorViewDemoTests/Info.plist +++ b/NVActivityIndicatorViewDemoTests/Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier - me.nvin.$(PRODUCT_NAME:rfc1034identifier) + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName