はじめに
今回のサンプルは@GestureState
という機能を使います。
初めて見たよって方は@GestureState
の記事から見てください
サンプルアプリ
実装
公式ドキュメントのコードです。
import SwiftUI
struct ContentView: View {
@GestureState private var magnifyBy = 1.0
var magnification: some Gesture {
MagnifyGesture()
.updating($magnifyBy) { value, gestureState, transaction in
gestureState = value.magnification
}
}
var body: some View {
Circle()
.frame(width: 100, height: 100)
.scaleEffect(magnifyBy)
.gesture(magnification)
}
}
シュミレーターでズームイン or ズームアウトする
今まで知らなかったんですけど、今回発見しました
control
+ option
+ 画面をドラッグ
これで出来ます。
おわり
画像のズーム機能などを簡単に実装できそうですね。
さらに@GestureState
を使うと指を離した時点で勝手に初期値に戻るのでより便利になります。
公式ドキュメント