on master help sign in
Reset timer when the app resigned
ed34ebfGunay Mert Karadogan
GMStepper.podspec+1−1
@@ -1,6 +1,6 @@
1Pod::Spec.new do |s|
1Pod::Spec.new do |s|
2 s.name = "GMStepper"
2 s.name = "GMStepper"
3− s.version = "1.0.0"
3+ s.version = "1.0.1"
4 s.summary = "A stepper with a sliding label in the middle."
4 s.summary = "A stepper with a sliding label in the middle."
5 s.homepage = "https://github.com/gmertk/GMStepper"
5 s.homepage = "https://github.com/gmertk/GMStepper"
6 s.screenshots = "https://dl.dropboxusercontent.com/u/4397140/pod-screenshots/screenshot_1.png"
6 s.screenshots = "https://dl.dropboxusercontent.com/u/4397140/pod-screenshots/screenshot_1.png"
GMStepper/GMStepper.swift+13−6
@@ -264,6 +264,8 @@ import UIKit
264 backgroundColor = buttonsBackgroundColor
264 backgroundColor = buttonsBackgroundColor
265 layer.cornerRadius = cornerRadius
265 layer.cornerRadius = cornerRadius
266 clipsToBounds = true
266 clipsToBounds = true
267+
268+ NSNotificationCenter.defaultCenter().addObserver(self, selector: "reset", name: UIApplicationWillResignActiveNotification, object: nil)
267 }
269 }
268
270
269 public override func layoutSubviews() {
271 public override func layoutSubviews() {
@@ -286,15 +288,20 @@ import UIKit
286 value -= stepValue
288 value -= stepValue
287 }
289 }
288 }
290 }
291+
292+ deinit {
293+ resetTimer()
294+ NSNotificationCenter.defaultCenter().removeObserver(self)
295+ }
289}
296}
290
297
291// MARK: Pan Gesture
298// MARK: Pan Gesture
292extension GMStepper {
299extension GMStepper {
293 func handlePan(gesture: UIPanGestureRecognizer) {
300 func handlePan(gesture: UIPanGestureRecognizer) {
294− leftButton.enabled = false
295− rightButton.enabled = false
296−
297 switch gesture.state {
301 switch gesture.state {
302+ case .Began:
303+ leftButton.enabled = false
304+ rightButton.enabled = false
298 case .Changed:
305 case .Changed:
299 var translation = gesture.translationInView(label)
306 var translation = gesture.translationInView(label)
300 gesture.setTranslation(CGPointZero, inView: label)
307 gesture.setTranslation(CGPointZero, inView: label)
@@ -333,8 +340,7 @@ extension GMStepper {
333 self.rightButton.backgroundColor = self.buttonsBackgroundColor
340 self.rightButton.backgroundColor = self.buttonsBackgroundColor
334 self.leftButton.backgroundColor = self.buttonsBackgroundColor
341 self.leftButton.backgroundColor = self.buttonsBackgroundColor
335 }
342 }
336−
337− case .Ended:
343+ case .Ended, .Cancelled, .Failed:
338 reset()
344 reset()
339 default:
345 default:
340 break
346 break
@@ -345,8 +351,10 @@ extension GMStepper {
345 panState = .Stable
351 panState = .Stable
346 stepperState = .Stable
352 stepperState = .Stable
347 resetTimer()
353 resetTimer()
354+
348 leftButton.enabled = true
355 leftButton.enabled = true
349 rightButton.enabled = true
356 rightButton.enabled = true
357+ label.userInteractionEnabled = true
350
358
351 UIView.animateWithDuration(self.labelSlideDuration, animations: {
359 UIView.animateWithDuration(self.labelSlideDuration, animations: {
352 self.label.center = self.labelOriginalCenter
360 self.label.center = self.labelOriginalCenter
@@ -387,7 +395,6 @@ extension GMStepper {
387
395
388 func buttonTouchUp(button: UIButton) {
396 func buttonTouchUp(button: UIButton) {
389 reset()
397 reset()
390− label.userInteractionEnabled = true
391 }
398 }
392}
399}
393
400