diff options
Diffstat (limited to 'Sora')
| -rw-r--r-- | Sora/Views/InteractiveImageView.swift | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/Sora/Views/InteractiveImageView.swift b/Sora/Views/InteractiveImageView.swift index a36d34f..41d26d3 100644 --- a/Sora/Views/InteractiveImageView.swift +++ b/Sora/Views/InteractiveImageView.swift @@ -5,7 +5,7 @@ struct InteractiveImageView: View { @State private var screenWidth = 0.0 @State private var screenHeight = 0.0 @State private var currentScale = 1.0 - @State private var previousScale = 0.0 + @State private var previousScale = 1.0 @State private var currentOffset: CGSize = .zero @State private var previousOffset: CGSize = .zero @State private var zoomAnchor: UnitPoint = .center @@ -24,12 +24,11 @@ struct InteractiveImageView: View { MagnifyGesture() .onChanged { gesture in withAnimation(.interactiveSpring()) { - if previousScale == 0 { + if previousScale == 1 { zoomAnchor = gesture.startAnchor } - currentScale = - previousScale + gesture.magnification - (previousScale == 0 ? 0 : 1) + currentScale = max(previousScale * gesture.magnification, 1) } } .onEnded { _ in @@ -58,7 +57,7 @@ struct InteractiveImageView: View { .onEnded { withAnimation { currentScale = 1 - previousScale = 0 + previousScale = 1 currentOffset = .zero previousOffset = .zero zoomAnchor = .center |