diff options
| author | Fuwn <[email protected]> | 2025-02-24 08:19:25 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-02-24 08:19:25 -0800 |
| commit | b9fd106814c6f3283379825ecb7e04a3771f721d (patch) | |
| tree | 3aa3accd32947d17f477ff6b0cd53231d60b1550 /Sora/Views/InteractiveImageView.swift | |
| parent | feat: Development commit (diff) | |
| download | sora-testing-b9fd106814c6f3283379825ecb7e04a3771f721d.tar.xz sora-testing-b9fd106814c6f3283379825ecb7e04a3771f721d.zip | |
feat: Development commit
Diffstat (limited to 'Sora/Views/InteractiveImageView.swift')
| -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 |