タブレット用プログラムの書き止め

android OS & iPadOS の記録。

【Swift P4.5.1】自作スクロールの画像座標の取得確認。

2024-10-14 18:25:26 | Swift iPadOS用

ズームの拡大率を変えて試したが画像の座標と大体合っている。


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
    }