From d77d2672f8169b688594aa2b758bca0bb2ad52cc Mon Sep 17 00:00:00 2001 From: micazeve Date: Mon, 20 Feb 2017 10:48:46 +0100 Subject: [PATCH] [UPD]: Access control --- Classes/MAAnimatedMultiGearView.swift | 8 +++---- Classes/MAGear.swift | 4 ++-- Classes/MAGearRefreshControl.swift | 20 +++++++++--------- Classes/MAMultiGearView.swift | 14 ++++++------ Classes/MASingleGearView.swift | 12 +++++------ .../UserInterfaceState.xcuserstate | Bin 35034 -> 35991 bytes MAGearRefreshControl.podspec | 4 ++-- 7 files changed, 31 insertions(+), 31 deletions(-) diff --git a/Classes/MAAnimatedMultiGearView.swift b/Classes/MAAnimatedMultiGearView.swift index a23f37c..7679b40 100644 --- a/Classes/MAAnimatedMultiGearView.swift +++ b/Classes/MAAnimatedMultiGearView.swift @@ -12,7 +12,7 @@ import UIKit /// This class is used to draw and animate multiple gears -class MAAnimatedMultiGearView: MAMultiGearView { +public class MAAnimatedMultiGearView: MAMultiGearView { //MARK: Instance properties @@ -38,7 +38,7 @@ class MAAnimatedMultiGearView: MAMultiGearView { //MARK: Various methods /// Override of the `addLinkedGear` method in order to update the array of rotational angle when a gear is added - override func addLinkedGear(_ gearLinked: Int, nbTeeth:UInt, color:UIColor, angleInDegree:Double) -> Bool { + override public func addLinkedGear(_ gearLinked: Int, nbTeeth:UInt, color:UIColor, angleInDegree:Double) -> Bool { if !super.addLinkedGear(gearLinked, nbTeeth: nbTeeth, color: color, angleInDegree: angleInDegree) { return false @@ -97,14 +97,14 @@ class MAAnimatedMultiGearView: MAMultiGearView { } /// Public method to start rotating - func startRotating() { + public func startRotating() { stopRotation = false rotate() } /// Public method to start rotating - func stopRotating() { + public func stopRotating() { stopRotation = true } } diff --git a/Classes/MAGear.swift b/Classes/MAGear.swift index db6901e..61ca8ef 100644 --- a/Classes/MAGear.swift +++ b/Classes/MAGear.swift @@ -11,7 +11,7 @@ import UIKit //MARK: - MAGear Class /// This class represents a gear in the most abstract way, without any graphical code related. -internal class MAGear { +public class MAGear { //MARK: Instance properties @@ -37,7 +37,7 @@ internal class MAGear { /// /// - parameter radius: of the gear /// - parameter nbTeeth: Number of teeth of the gear. Must be greater than 2. - init (radius:CGFloat, nbTeeth:UInt) { + public init (radius:CGFloat, nbTeeth:UInt) { assert(nbTeeth > 2) diff --git a/Classes/MAGearRefreshControl.swift b/Classes/MAGearRefreshControl.swift index f6cd686..5e71af8 100644 --- a/Classes/MAGearRefreshControl.swift +++ b/Classes/MAGearRefreshControl.swift @@ -12,8 +12,8 @@ import UIKit /// Protocol between the MAGearRefreshControl and its delegate (mostly UITableViewController). -@objc protocol MAGearRefreshDelegate { - + @objc public protocol MAGearRefreshDelegate { + /// Method called when the pull to refresh move was triggered. /// /// - parameter view: The MAGearRefreshControl object. @@ -33,12 +33,12 @@ import UIKit //MARK: - MAGearRefreshControl Class /// This class is used to draw an animated group of gears and offers the same interactions as an UIRefreshControl -class MAGearRefreshControl: MAAnimatedMultiGearView { +public class MAGearRefreshControl: MAAnimatedMultiGearView { //MARK: Instance properties /// Enum representing the different state of the refresh control - enum MAGearRefreshState: UInt8 { + public enum MAGearRefreshState: UInt8 { case normal // The user is pulling but hasn't reach the activation threshold yet case pulling // The user is still pulling and has passed the activation threshold case loading // The refresh control is animating @@ -48,7 +48,7 @@ class MAGearRefreshControl: MAAnimatedMultiGearView { fileprivate var state = MAGearRefreshState.normal /// Delegate conforming to the MAGearRefreshDelegate protocol. Most of time it's an UITableViewController - var delegate:MAGearRefreshDelegate? + public var delegate:MAGearRefreshDelegate? /// Content offset of the tableview fileprivate var contentOffset:CGFloat = 0 @@ -96,7 +96,7 @@ class MAGearRefreshControl: MAAnimatedMultiGearView { /// Method to call when the scrollview was scrolled. /// /// - parameter scrollView: The scrollview. - func MAGearRefreshScrollViewDidScroll(_ scrollView:UIScrollView) { + public func MAGearRefreshScrollViewDidScroll(_ scrollView:UIScrollView) { configureWithContentOffsetY(-scrollView.contentOffset.y) @@ -137,7 +137,7 @@ class MAGearRefreshControl: MAAnimatedMultiGearView { /// Method to call when the scrollview ended dragging /// /// - parameter scrollView: The scrollview. - func MAGearRefreshScrollViewDidEndDragging(_ scrollView:UIScrollView) { + public func MAGearRefreshScrollViewDidEndDragging(_ scrollView:UIScrollView) { NSLog("MAGearRefreshScrollViewDidEndDragging") /*if state == .Loading { @@ -186,7 +186,7 @@ class MAGearRefreshControl: MAAnimatedMultiGearView { /// Method to call when the datasource finished loading /// /// - parameter scrollView: The scrollview. - func MAGearRefreshScrollViewDataSourceDidFinishedLoading(_ scrollView:UIScrollView) { + public func MAGearRefreshScrollViewDataSourceDidFinishedLoading(_ scrollView:UIScrollView) { NSLog("MAGearRefreshScrollViewDataSourceDidFinishedLoading") @@ -279,12 +279,12 @@ class MAGearRefreshControl: MAAnimatedMultiGearView { //MARK: Public methods override /// Override of startRotating in order to disable this portion of code (must be triggered from the tableview) - override func startRotating() { + override public func startRotating() { } /// Override of stopRotating in order to disable this portion of code (must be triggered from delegate) - override func stopRotating() + override public func stopRotating() { } } diff --git a/Classes/MAMultiGearView.swift b/Classes/MAMultiGearView.swift index 4b64d7e..16d4024 100644 --- a/Classes/MAMultiGearView.swift +++ b/Classes/MAMultiGearView.swift @@ -11,7 +11,7 @@ import UIKit //MARK: - MAMultiGearView Class /// This class is used to draw multiples gears in a UIView. -class MAMultiGearView : UIView { +public class MAMultiGearView : UIView { //MARK: Instance properties @@ -61,7 +61,7 @@ class MAMultiGearView : UIView { //MARK: Init methods /// Default initializer - override init(frame: CGRect) { + override public init(frame: CGRect) { super.init(frame: frame) clipsToBounds = true @@ -78,7 +78,7 @@ class MAMultiGearView : UIView { } /// Required initializer - required init(coder aDecoder: NSCoder) { + required public init(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } @@ -92,7 +92,7 @@ class MAMultiGearView : UIView { /// - parameter radius: Radius in pixel of the gear /// /// - returns: true if the gear was succesfully created, false otherwise (if at least one gear exists). - func addInitialGear(nbTeeth:UInt, color: UIColor, radius:CGFloat) -> Bool { + public func addInitialGear(nbTeeth:UInt, color: UIColor, radius:CGFloat) -> Bool { if arrayViews.count > 0 { return false @@ -120,7 +120,7 @@ class MAMultiGearView : UIView { /// - parameter angleInDegree: Angle (in degree) between the gear to create and the previous gear, according to the unit circle. /// /// - returns: true if the gear was succesfully created, false otherwise (if the gearLinked index is incorrect). - func addLinkedGear(_ gearLinked: Int, nbTeeth:UInt, color:UIColor, angleInDegree:Double) -> Bool { + public func addLinkedGear(_ gearLinked: Int, nbTeeth:UInt, color:UIColor, angleInDegree:Double) -> Bool { if gearLinked >= arrayViews.count || gearLinked < 0 { return false @@ -172,7 +172,7 @@ class MAMultiGearView : UIView { /// Set the phase for the first gear and calculate it for all the linked gears /// /// - parameter phase: Phase between 0 and 1 for the first gear. - func setMainGearPhase(_ phase:Double) { + public func setMainGearPhase(_ phase:Double) { if arrayViews.count == 0 { return } @@ -269,7 +269,7 @@ class MAMultiGearView : UIView { //MARK: Override setFrame - override var frame:CGRect { + override public var frame:CGRect { didSet { configureView() } diff --git a/Classes/MASingleGearView.swift b/Classes/MASingleGearView.swift index bcd2eda..21f7a54 100644 --- a/Classes/MASingleGearView.swift +++ b/Classes/MASingleGearView.swift @@ -12,7 +12,7 @@ import UIKit //MARK: - MASingleGearView Class /// This class is used to draw a gear in a UIView. -class MASingleGearView : UIView { +public class MASingleGearView : UIView { //MARK: Instance properties @@ -20,12 +20,12 @@ class MASingleGearView : UIView { internal var gear:MAGear! /// Color of the gear. - var gearColor = UIColor.black + public var gearColor = UIColor.black /// Phase of the gear. Varies between 0 and 1. /// A phase of 0 represents a gear with the rightmost tooth fully horizontal, while a phase of 0.5 represents a gear with a hole in the rightmost point. /// A phase of 1 thus is graphically equivalent to a phase of 0 - var phase:Double = 0 + public var phase:Double = 0 //MARK: Init methods @@ -33,7 +33,7 @@ class MASingleGearView : UIView { /// /// - parameter gear: Gear linked to this view /// - parameter gearColor: Color of the gear - init(gear:MAGear, gearColor:UIColor) { + public init(gear:MAGear, gearColor:UIColor) { var width = Int(gear.outsideDiameter + 1) if width%2 == 1 { @@ -48,14 +48,14 @@ class MASingleGearView : UIView { } /// Required initializer - required init(coder aDecoder: NSCoder) { + required public init(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } //MARK: Drawing methods /// Override of drawing method - override func draw(_ rect: CGRect) { + override public func draw(_ rect: CGRect) { _ = CGColorSpaceCreateDeviceRGB() let currentContext = UIGraphicsGetCurrentContext() currentContext?.clear(rect) diff --git a/MAGearRefreshControl-Demo/MAGearRefreshControl-Demo.xcodeproj/project.xcworkspace/xcuserdata/mazevedo.xcuserdatad/UserInterfaceState.xcuserstate b/MAGearRefreshControl-Demo/MAGearRefreshControl-Demo.xcodeproj/project.xcworkspace/xcuserdata/mazevedo.xcuserdatad/UserInterfaceState.xcuserstate index 05667041c3f85c3ae94ea75d4a384c12dd84861a..e7ca5bddadc76575fb91480ee24382f13d060255 100644 GIT binary patch delta 16480 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 AKL7v# delta 15891 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 diff --git a/MAGearRefreshControl.podspec b/MAGearRefreshControl.podspec index afd9185..94172ec 100644 --- a/MAGearRefreshControl.podspec +++ b/MAGearRefreshControl.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "MAGearRefreshControl" - s.version = "0.2" + s.version = "0.3" s.summary = "Refresh control with gear animation." s.description = <<-DESC @@ -13,7 +13,7 @@ Pod::Spec.new do |s| s.social_media_url = "https://twitter.com/micazeve" s.platforms = { :ios => "8.0" } - s.source = { :git => "https://github.com/micazeve/MAGearRefreshControl.git", :branch => "master", :tag => '0.2'} + s.source = { :git => "https://github.com/micazeve/MAGearRefreshControl.git", :branch => "master", :tag => '0.3'} s.source_files = "Classes/**/*.swift" s.ios.deployment_target = '8.0'