summaryrefslogtreecommitdiff
path: root/Sora/Views/InteractiveImageView.swift
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-02-24 08:19:25 -0800
committerFuwn <[email protected]>2025-02-24 08:19:25 -0800
commitb9fd106814c6f3283379825ecb7e04a3771f721d (patch)
tree3aa3accd32947d17f477ff6b0cd53231d60b1550 /Sora/Views/InteractiveImageView.swift
parentfeat: Development commit (diff)
downloadsora-testing-b9fd106814c6f3283379825ecb7e04a3771f721d.tar.xz
sora-testing-b9fd106814c6f3283379825ecb7e04a3771f721d.zip
feat: Development commit
Diffstat (limited to 'Sora/Views/InteractiveImageView.swift')
-rw-r--r--Sora/Views/InteractiveImageView.swift9
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