ズームの拡大率を変えて試したが画像の座標と大体合っている。
import SwiftUI
struct SublView: View {
private var image = UIImage(named: "Test3") // アセットフォルダに用意JPG
private var currentScale: CGFloat = 1.0 // 数値を変えて座標値を確認
@State private var viewSize: CGSize = CGSize.zero
// 中略
var body: some View {
VStack(alignment: .leading) {
GeometryReader { geometry in
Image(uiImage: image!)
.resizable()
//中略
.onTapGesture() { value in
let point = convertImagePosition(viewPoint: value, imageOffset: lastOffset)
print("x: \(point.x) y: \(point.y)" ) // 座標値を表示。確認後は消去
}
}
}
// 省略
}
func convertImagePosition( viewPoint: CGPoint, imageOffset: CGSize ) -> CGPoint {
var point = viewPoint
point.x = ( point.x - imageOffset.width ) / currentScale // 本当は、currentScaleも引数で渡したい。(手抜き)
point.y = ( point.y - imageOffset.height ) / currentScale
return point
}
}