From ed34ebf37b2ad81d4768decfac68194c7de3d7c4 Mon Sep 17 00:00:00 2001 From: Gunay Mert Karadogan Date: Tue, 14 Jul 2015 10:51:38 +0200 Subject: [PATCH] Reset timer when the app resigned --- GMStepper.podspec | 2 +- GMStepper/GMStepper.swift | 19 +++++++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/GMStepper.podspec b/GMStepper.podspec index 03438c5..e647673 100644 --- a/GMStepper.podspec +++ b/GMStepper.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "GMStepper" - s.version = "1.0.0" + s.version = "1.0.1" s.summary = "A stepper with a sliding label in the middle." s.homepage = "https://github.com/gmertk/GMStepper" s.screenshots = "https://dl.dropboxusercontent.com/u/4397140/pod-screenshots/screenshot_1.png" diff --git a/GMStepper/GMStepper.swift b/GMStepper/GMStepper.swift index c4b5749..140baf1 100644 --- a/GMStepper/GMStepper.swift +++ b/GMStepper/GMStepper.swift @@ -264,6 +264,8 @@ import UIKit backgroundColor = buttonsBackgroundColor layer.cornerRadius = cornerRadius clipsToBounds = true + + NSNotificationCenter.defaultCenter().addObserver(self, selector: "reset", name: UIApplicationWillResignActiveNotification, object: nil) } public override func layoutSubviews() { @@ -286,15 +288,20 @@ import UIKit value -= stepValue } } + + deinit { + resetTimer() + NSNotificationCenter.defaultCenter().removeObserver(self) + } } // MARK: Pan Gesture extension GMStepper { func handlePan(gesture: UIPanGestureRecognizer) { - leftButton.enabled = false - rightButton.enabled = false - switch gesture.state { + case .Began: + leftButton.enabled = false + rightButton.enabled = false case .Changed: var translation = gesture.translationInView(label) gesture.setTranslation(CGPointZero, inView: label) @@ -333,8 +340,7 @@ extension GMStepper { self.rightButton.backgroundColor = self.buttonsBackgroundColor self.leftButton.backgroundColor = self.buttonsBackgroundColor } - - case .Ended: + case .Ended, .Cancelled, .Failed: reset() default: break @@ -345,8 +351,10 @@ extension GMStepper { panState = .Stable stepperState = .Stable resetTimer() + leftButton.enabled = true rightButton.enabled = true + label.userInteractionEnabled = true UIView.animateWithDuration(self.labelSlideDuration, animations: { self.label.center = self.labelOriginalCenter @@ -387,7 +395,6 @@ extension GMStepper { func buttonTouchUp(button: UIButton) { reset() - label.userInteractionEnabled = true } }