Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- final class InteractiveSwipe: UIPercentDrivenInteractiveTransition {
- var panGesture: UIPanGestureRecognizer?
- weak var viewController: UIViewController?
- private var shouldComplete = true
- func attachToViewController(viewController: UIViewController) {
- self.viewController = viewController
- panGesture = UIPanGestureRecognizer(target:self, action: "onPan:")
- self.viewController?.view.addGestureRecognizer(panGesture!)
- }
- func onPan(pan: UIPanGestureRecognizer) {
- let translation = pan.translationInView(pan.view?.superview)
- switch pan.state {
- case .Began: break
- self.viewController?.dismissViewControllerAnimated(true, completion: nil)
- case .Changed:
- let dragAmount: CGFloat = 50
- let threshHold: CGFloat = 0.5
- var percentage: CGFloat = translation.x / dragAmount
- percentage = CGFloat(fmaxf(Float(percentage), 0.0))
- percentage = CGFloat(fminf(Float(percentage), 1.0))
- self.updateInteractiveTransition(percentage)
- shouldComplete = percentage >= threshHold
- print(shouldComplete)
- print(percentage)
- case .Ended:
- self.finishInteractiveTransition()
- case .Cancelled:
- self.cancelInteractiveTransition()
- default:
- return
- }
- }
- @nonobjc
- func completionSpeed() -> CGFloat {
- return 1 - self.percentComplete
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement