@@ -23,11 +23,11 @@ open class SSSpinnerButton: UIButton {
2323 internal var storedDisableTitle : String ?
2424 internal var storedHighlitedTitle : String ?
2525
26- internal var rippleEffectAnimationDuration = 0.0
27- internal var initialOpacity = 0.0
28- internal var rippleEffectColor = UIColor . white
29- internal var rippleEffectPercent = CGFloat ( 0.0 )
30- internal var initalRippleEffectPercent : CGFloat = CGFloat ( 0.0 )
26+ public var rippleEffectAnimationDuration = 0.0
27+ public var initialOpacity = 0.0
28+ public var rippleEffectColor = UIColor . white
29+ public var rippleEffectPercent = CGFloat ( 0.0 )
30+ public var initalRippleEffectPercent : CGFloat = CGFloat ( 0.0 )
3131
3232 internal var storedAttributedNormalTitle : NSAttributedString ?
3333 internal var storedAttributedSelectedTitle : NSAttributedString ?
@@ -43,11 +43,12 @@ open class SSSpinnerButton: UIButton {
4343 internal var storedDisabledImage : UIImage ?
4444 internal var storedHighlightedImage : UIImage ?
4545 internal var storedBackgroundColor : UIColor ?
46+
4647 fileprivate var animationDuration : CFTimeInterval = 0.1
4748
4849 fileprivate var isAnimating : Bool = false
4950
50- fileprivate var spinnerType : SpinnerType = . ballClipRotate
51+ fileprivate var spinnerType : SpinnerType = Config . spinnerType
5152
5253 fileprivate var storedWidth : CGFloat ?
5354 fileprivate var storedHeight : CGFloat ?
@@ -58,21 +59,22 @@ open class SSSpinnerButton: UIButton {
5859 layer. cornerRadius = newValue
5960 }
6061 }
61-
6262 @IBInspectable var setRippleEffect : Bool = false {
6363 didSet {
6464 if setRippleEffect {
65- self . setRippleEffect ( rippleEffectAnimationDuration: 0.3 , initialOpacity: 0.5 , rippleEffectColor: . white , rippleEffectPercent: 0.45 , initalRippleEffectPercent: 0.3 )
65+ self . setRippleEffect ( rippleEffectAnimationDuration: 0.3 , initialOpacity: 0.5 , rippleEffectColor: rippleEffectColor , rippleEffectPercent: 0.45 , initalRippleEffectPercent: 0.3 )
6666 }
6767 }
6868 }
6969
7070 /// Sets the spinner color
71- public var spinnerColor : UIColor = UIColor . gray
71+ public var spinnerColor : UIColor = Config . spinnerColor
7272
73- var spinnerSize : UInt ?
73+ var spinnerSize : UInt ? = Config . spinnerSize
7474 /// Sets the button title for its normal state
7575
76+
77+
7678 public var normalTitle : String ? {
7779 get {
7880 return self . title ( for: . normal)
@@ -271,8 +273,8 @@ public extension SSSpinnerButton {
271273 /// - spinnerType: spinner Type ( ballClipRotate(default), ballSpinFade, lineSpinFade, circleStrokeSpin, ballRotateChase)
272274 /// - spinnercolor: color of spinner (default = gray)
273275 /// - complete: complation block (call after animation start)
274- func startAnimate( spinnerType: SpinnerType = . ballClipRotate , spinnercolor: UIColor = . gray , complete: ( ( ) -> Void ) ? ) {
275- self . startAnimate ( spinnerType: spinnerType, spinnercolor: spinnercolor, spinnerSize: nil , complete: complete)
276+ func startAnimate( spinnerType: SpinnerType = Config . spinnerType , spinnercolor: UIColor = Config . spinnerColor , complete: ( ( ) -> Void ) ? ) {
277+ self . startAnimate ( spinnerType: spinnerType , spinnercolor: spinnercolor, spinnerSize: nil , complete: complete)
276278 }
277279
278280 /// Start Animation
@@ -282,7 +284,7 @@ public extension SSSpinnerButton {
282284 /// - spinnercolor: color of spinner (default = gray)
283285 /// - spinnerSize: size of spinner layer
284286 /// - complete: complation block (call after animation start)
285- func startAnimate( spinnerType: SpinnerType = . ballClipRotate , spinnercolor: UIColor = . gray , spinnerSize: UInt ? , complete: ( ( ) -> Void ) ? ) {
287+ func startAnimate( spinnerType: SpinnerType = Config . spinnerType , spinnercolor: UIColor = Config . spinnerColor , spinnerSize: UInt ? = nil , complete: ( ( ) -> Void ) ? ) {
286288 if self . cornrRadius == 0 {
287289 self . cornrRadius = self . layer. cornerRadius
288290 }
@@ -291,7 +293,7 @@ public extension SSSpinnerButton {
291293 isAnimating = true
292294 self . spinnerColor = spinnercolor
293295 self . spinnerType = spinnerType
294- self . spinnerSize = spinnerSize
296+ self . spinnerSize = spinnerSize ?? Config . spinnerSize
295297
296298 self . layer. cornerRadius = self . frame. height / 2
297299 if layer. sublayers != nil {
@@ -537,3 +539,13 @@ private extension SSSpinnerButton {
537539 }
538540
539541}
542+
543+
544+ extension SSSpinnerButton {
545+
546+ public struct Config {
547+ public static var spinnerType : SpinnerType = . ballClipRotate
548+ public static var spinnerColor : UIColor = . gray
549+ public static var spinnerSize : UInt ? = nil
550+ }
551+ }
0 commit comments