From 44749f8a6792773746a9d2b2dc5197b619463d3d Mon Sep 17 00:00:00 2001 From: Daniel Roth Date: Tue, 30 Jul 2024 16:23:51 -0700 Subject: [PATCH] Simplify the API --- .../Sheet/PartialSheetPresentation.swift | 17 ++++++++++------- .../PartialSheetPresentationController.swift | 6 ++---- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/Sources/Thumbprint/Presentations/Sheet/PartialSheetPresentation.swift b/Sources/Thumbprint/Presentations/Sheet/PartialSheetPresentation.swift index 36ff5fb..32d8609 100644 --- a/Sources/Thumbprint/Presentations/Sheet/PartialSheetPresentation.swift +++ b/Sources/Thumbprint/Presentations/Sheet/PartialSheetPresentation.swift @@ -7,11 +7,11 @@ open class PartialSheetPresentation: NSObject, UIViewControllerTransitioningDele private let triggerPercentage: CGFloat = 0.42 let panGestureRecognizer: UIPanGestureRecognizer - let completion: ((_ didFinish: Bool) -> Void)? + let transitionCompletion: (() -> Void)? - required init(panGestureRecognizer: UIPanGestureRecognizer, completion: ((_ didFinish: Bool) -> Void)?) { + required init(panGestureRecognizer: UIPanGestureRecognizer, transitionCompletion: (() -> Void)?) { self.panGestureRecognizer = panGestureRecognizer - self.completion = completion + self.transitionCompletion = transitionCompletion super.init() @@ -42,10 +42,8 @@ open class PartialSheetPresentation: NSObject, UIViewControllerTransitioningDele case .ended: if percentComplete > triggerPercentage { finish() - completion?(true) } else { cancel() - completion?(false) } default: @@ -53,6 +51,11 @@ open class PartialSheetPresentation: NSObject, UIViewControllerTransitioningDele } } + override func finish() { + super.finish() + transitionCompletion?() + } + public func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval { transitionContext?.isInteractive == true ? 0.5 : 0.2 } @@ -80,8 +83,8 @@ open class PartialSheetPresentation: NSObject, UIViewControllerTransitioningDele return nil } - return PercentDrivenInteractiveTransition(panGestureRecognizer: partialSheetPresentationController.panGestureRecognizer) { didFinish in - partialSheetPresentationController.didCompleteInteractiveTransition(success: didFinish) + return PercentDrivenInteractiveTransition(panGestureRecognizer: partialSheetPresentationController.panGestureRecognizer) { + partialSheetPresentationController.didCompleteInteractiveTransition() } } diff --git a/Sources/Thumbprint/Presentations/Sheet/PartialSheetPresentationController.swift b/Sources/Thumbprint/Presentations/Sheet/PartialSheetPresentationController.swift index 1f6eb44..587f623 100644 --- a/Sources/Thumbprint/Presentations/Sheet/PartialSheetPresentationController.swift +++ b/Sources/Thumbprint/Presentations/Sheet/PartialSheetPresentationController.swift @@ -101,10 +101,8 @@ open class PartialSheetPresentationController: UIPresentationController { // Indicates that the modal was dismissed either by tapping the background area, or swiping down var userDidDismissModal = false - func didCompleteInteractiveTransition(success: Bool) { - if success { - userDidDismissModal = true - } + func didCompleteInteractiveTransition() { + userDidDismissModal = true } public var partialSheetDelegate: PartialSheetPresentationControllerDelegate? {