我长期以来一直试图解决这个问题,但我做不到。我将非常感谢您的帮助! 现在我正在努力确定我在屏幕上看到的图像部分的第一个点的坐标(偏移)。
例如,此代码在图像移动后打印偏移量。而且我不明白如何制作,以便当缩放图像时,偏移量也会相应变化。我的意思是,如果我想从同一位置(例如在左边缘)裁剪照片,但比例不同,我不能在这里这样做,因为偏移坐标不相同。
struct ContentView: View {
@State private var imageScale: CGFloat = 1.0
@State private var previousScale: CGFloat = 0
@State private var imageOffset: CGSize = .zero
@State private var previousOffset: CGSize = .zero
var body: some View {
let dragGesture = DragGesture()
.onChanged { value in
self.imageOffset.width = value.translation.width + self.previousOffset.width
self.imageOffset.height = value.translation.height + self.previousOffset.height
}
.onEnded { value in
self.previousOffset = self.imageOffset
print("Offset: \(imageOffset)")
}
let pinchGesture = MagnificationGesture()
.onChanged { scale in
imageScale = scale + previousScale
}
.onEnded { _ in
previousScale = imageScale - 1
}
Image(systemName: "person.fill")
.resizable()
.scaledToFill()
.scaleEffect(imageScale)
.offset(imageOffset)
.gesture(dragGesture)
.gesture(pinchGesture)
}
}
如果这对任何人都有帮助 - 我在这里找到了答案https://copyprogramming.com/howto/swiftui-scale-zoom-and-crop-image