Skip to content

Commit 9d5212d

Browse files
Merge pull request #18 from simformsolutions/develop
Bug fixes
2 parents 2005d75 + 6181ffe commit 9d5212d

File tree

7 files changed

+209
-81
lines changed

7 files changed

+209
-81
lines changed

SSSpinnerButton.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
Pod::Spec.new do |s|
1010
s.name = "SSSpinnerButton"
11-
s.version = "1.1.1"
11+
s.version = "1.1.2"
1212
s.summary = "SSSpinnerButton is an elegant button with a different spinner animations."
1313

1414
#s.description = "SSSpinnerButton is an elegant button with a different spinner animations."

SSSpinnerButton/Base.lproj/Main.storyboard

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="30" translatesAutoresizingMaskIntoConstraints="NO" id="L6t-dE-3h7">
2525
<rect key="frame" x="0.0" y="0.0" width="135" height="360"/>
2626
<subviews>
27-
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="UW4-Lx-QHw" customClass="SSSpinnerButton" customModule="SSSpinnerButton" customModuleProvider="target">
27+
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="UW4-Lx-QHw" customClass="SSSpinnerButton" customModule="SSSpinnerButton" customModuleProvider="target">
2828
<rect key="frame" x="0.0" y="0.0" width="135" height="40"/>
2929
<color key="backgroundColor" red="0.97647058823529409" green="0.58039215686274503" blue="0.6470588235294118" alpha="1" colorSpace="calibratedRGB"/>
3030
<constraints>
@@ -33,6 +33,11 @@
3333
<state key="normal" title="BallClipRotate">
3434
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
3535
</state>
36+
<userDefinedRuntimeAttributes>
37+
<userDefinedRuntimeAttribute type="number" keyPath="cornrRadius">
38+
<real key="value" value="10"/>
39+
</userDefinedRuntimeAttribute>
40+
</userDefinedRuntimeAttributes>
3641
<connections>
3742
<action selector="onSpinnnerButtonClick:" destination="BYZ-38-t0r" eventType="touchUpInside" id="WSs-Ty-TWf"/>
3843
</connections>
@@ -95,7 +100,7 @@
95100
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="30" translatesAutoresizingMaskIntoConstraints="NO" id="WvR-h8-XhK">
96101
<rect key="frame" x="145" y="0.0" width="135" height="360"/>
97102
<subviews>
98-
<button opaque="NO" tag="5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="e7v-OB-5yI" customClass="SSSpinnerButton" customModule="SSSpinnerButton" customModuleProvider="target">
103+
<button opaque="NO" clipsSubviews="YES" tag="5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="e7v-OB-5yI" customClass="SSSpinnerButton" customModule="SSSpinnerButton" customModuleProvider="target">
99104
<rect key="frame" x="0.0" y="0.0" width="135" height="40"/>
100105
<color key="backgroundColor" red="0.97647058819999999" green="0.58039215690000001" blue="0.64705882349999999" alpha="1" colorSpace="calibratedRGB"/>
101106
<constraints>
@@ -184,7 +189,7 @@
184189
</viewController>
185190
<placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
186191
</objects>
187-
<point key="canvasLocation" x="111" y="24"/>
192+
<point key="canvasLocation" x="699" y="22"/>
188193
</scene>
189194
</scenes>
190195
</document>

SSSpinnerButton/SSSpinnerButton/SpinerShapes/SpinnerAnimationDelegate/SpinnerAnimationDelegate.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,5 @@ protocol SSSpinnerAnimationDelegate {
2020
/// - color: color of spinner
2121
/// - spinnerSize: size of spinner layer
2222
func setupSpinnerAnimation(layer: CALayer, frame: CGRect, color: UIColor, spinnerSize: UInt?)
23+
2324
}

SSSpinnerButton/SSSpinnerButton/SpinerShapes/SpinnerShapeWithAnimation/SSErrorMark.swift

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,26 +23,28 @@ class SSErrorMark: SSSpinnerAnimationDelegate {
2323
// add layer
2424
let errorMark = CheckMarkShape.errorMark.layerWith(frame: frame, color: color)
2525
layer.addSublayer(errorMark)
26-
26+
2727
// end status
2828
let strokeEnd: CGFloat = 10
2929
errorMark.strokeEnd = strokeEnd
30-
30+
3131
// animation
3232
let animation = CABasicAnimation(keyPath: "strokeEnd")
3333
animation.duration = 2.0
3434
animation.fromValue = 0.0
3535
animation.toValue = strokeEnd
36-
errorMark.add(animation, forKey: nil)
36+
animation.isRemovedOnCompletion = true
37+
errorMark.add(animation, forKey: animation.keyPath)
3738

3839
// shake animation
3940
let anim = CABasicAnimation(keyPath: "transform.rotation.z")
4041
anim.fromValue = (-Double.pi / 10)
4142
anim.toValue = (Double.pi / 10)
42-
anim.duration = 0.05
43+
anim.duration = 0.08
4344
anim.repeatCount = 4
4445
anim.autoreverses = true
45-
layer.add(anim, forKey: nil)
46+
anim.isRemovedOnCompletion = true
47+
layer.add(anim, forKey: anim.keyPath)
4648
}
4749

4850
}

SSSpinnerButton/SSSpinnerButton/SpinerShapes/SpinnerTypes.swift

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -50,40 +50,50 @@ public enum SpinnerType: Int {
5050
- returns: Instance of SSCircleStrokeSpin.
5151
*/
5252
case circleStrokeSpin
53+
54+
/// Animation of spinner
55+
///
56+
/// - Returns:
57+
func animation() -> SSSpinnerAnimationDelegate {
58+
switch self {
59+
case .ballClipRotate:
60+
return SSSpinnerBallClipRotate()
61+
case .ballSpinFade:
62+
return SSBallSpinFadeLoader()
63+
case .lineSpinFade:
64+
return SSLineSpinFadeLoader()
65+
case .ballRotateChase:
66+
return SSBallRotateChase()
67+
case .circleStrokeSpin:
68+
return SSCircleStrokeSpin()
69+
70+
}
71+
}
72+
73+
}
74+
75+
public enum SpinnerCompletionType: Int {
5376
/**
54-
CircleStrokeSpin.
77+
CheckMark.
5578

5679
- returns: Instance of SSCheckMark.
5780
*/
5881
case checkMark
5982
/**
60-
CircleStrokeSpin.
83+
FailMark.
6184

6285
- returns: Instance of SSFailMark.
6386
*/
6487
case failMark
6588
/**
66-
CircleStrokeSpin.
89+
ErrorMark.
6790

6891
- returns: Instance of SSErrorMark.
6992
*/
7093
case errorMark
7194

72-
/// Animation of spinner
73-
///
74-
/// - Returns:
7595
func animation() -> SSSpinnerAnimationDelegate {
7696
switch self {
77-
case .ballClipRotate:
78-
return SSSpinnerBallClipRotate()
79-
case .ballSpinFade:
80-
return SSBallSpinFadeLoader()
81-
case .lineSpinFade:
82-
return SSLineSpinFadeLoader()
83-
case .ballRotateChase:
84-
return SSBallRotateChase()
85-
case .circleStrokeSpin:
86-
return SSCircleStrokeSpin()
8797
case .checkMark:
8898
return SSSuccessMark()
8999
case .failMark:

0 commit comments

Comments
 (0)