SwiftUIで画像をピンチで拡大する(MagnificationGesture)


SwiftUIで画像をピンチで拡大する方法です。 MagnificationGestureを使った方法で画像をピンチで拡大します。 ただこの方法ではドラッグすることができないので、他の方法にする必要があります。

他にはこのような方法があります。

SwiftUIで画像をピンチで拡大する(PDFView)

SwiftUIで画像をピンチで拡大する(UIImageView + UIScrollView)

Pinch and Zoom

ContentView.swift

import SwiftUI

struct ContentView: View {
    @State var scale: CGFloat = 1.0
    
    var body: some View {
        Image("icon")
            .resizable()
            .scaleEffect(scale)
            .frame(width: 200, height: 200)
            .gesture(MagnificationGesture()
                .onChanged { value in
                    scale = value.magnitude
                }
            )
    }
}