From e4f96e956aa8fd1a6e5a6bc88143507a18794bd7 Mon Sep 17 00:00:00 2001 From: Steve Kim Date: Fri, 2 Aug 2024 10:00:03 +0900 Subject: [PATCH 1/2] Fix logic for canceling and completing interactions --- .../Interactors/Base/AbstractInteractiveTransition.m | 4 ++++ .../Interactors/Panning/PanningInteractiveTransition.m | 10 +++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/AnimatedTransitionKit/Classes/Interactors/Base/AbstractInteractiveTransition.m b/AnimatedTransitionKit/Classes/Interactors/Base/AbstractInteractiveTransition.m index 858dc15..eca60ff 100644 --- a/AnimatedTransitionKit/Classes/Interactors/Base/AbstractInteractiveTransition.m +++ b/AnimatedTransitionKit/Classes/Interactors/Base/AbstractInteractiveTransition.m @@ -72,6 +72,10 @@ - (id)init { - (void)cancelInteractiveTransition { [super cancelInteractiveTransition]; + if (!self.transition.transitioning.context) { + return; + } + if ([_delegate respondsToSelector:@selector(willCancelWithInteractor:)]) { [_delegate willCancelWithInteractor:self]; } diff --git a/AnimatedTransitionKit/Classes/Interactors/Panning/PanningInteractiveTransition.m b/AnimatedTransitionKit/Classes/Interactors/Panning/PanningInteractiveTransition.m index f28034d..278334a 100644 --- a/AnimatedTransitionKit/Classes/Interactors/Panning/PanningInteractiveTransition.m +++ b/AnimatedTransitionKit/Classes/Interactors/Panning/PanningInteractiveTransition.m @@ -186,26 +186,30 @@ - (void)panned:(UIPanGestureRecognizer *)panGestureRecognizer { } const CGSize screenSize = UIScreen.mainScreen.bounds.size; + const BOOL isStartPanningDirectionVertical = PanningDirectionIsVertical(self.startPanningDirection); CGFloat translationValue; CGFloat targetSize; + CGFloat velocityValue; switch (self.direction) { case InteractiveTransitionDirectionVertical: translationValue = self.translation.y; targetSize = screenSize.height; + velocityValue = self.velocity.y; break; case InteractiveTransitionDirectionHorizontal: translationValue = self.translation.x; targetSize = screenSize.width; + velocityValue = self.velocity.x; break; case InteractiveTransitionDirectionAll: - translationValue = self.translation.x + self.translation.y; - targetSize = screenSize.width + screenSize.height; + translationValue = isStartPanningDirectionVertical ? self.translation.y : self.translation.x; + targetSize = isStartPanningDirectionVertical ? screenSize.height : screenSize.width; + velocityValue = isStartPanningDirectionVertical ? self.velocity.y : self.velocity.x; break; } const BOOL isAppearing = [self.transition isAppearing:self]; const CGFloat fixedTranslationValue = translationValue - self.translationOffset; - const CGFloat velocityValue = self.isVertical ? self.velocity.y : self.velocity.x; const CGFloat interactionDistance = targetSize * (isAppearing ? -1 : 1); const CGFloat percent = fmin(fmax(-1, fixedTranslationValue / interactionDistance), 1); const CGFloat multiply = MAX(1, ABS(velocityValue / 300)); From 702a2f84147f5186002999a3ce02eb10a158b232 Mon Sep 17 00:00:00 2001 From: Steve Kim Date: Fri, 2 Aug 2024 10:01:40 +0900 Subject: [PATCH 2/2] Update version to 4.0.2 --- AnimatedTransitionKit.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AnimatedTransitionKit.podspec b/AnimatedTransitionKit.podspec index be298a3..9937ba5 100644 --- a/AnimatedTransitionKit.podspec +++ b/AnimatedTransitionKit.podspec @@ -8,7 +8,7 @@ Pod::Spec.new do |s| s.name = "AnimatedTransitionKit" - s.version = "4.0.1" + s.version = "4.0.2" s.summary = "UIViewController Transitioning Library." s.description = "This library helps you to apply and create Custom UIViewController Transitions." s.homepage = "https://github.com/pisces/AnimatedTransitionKit"