[SwiftUI]リスト(List)の要素にタップ処理を追加するには?

SwiftUI

どうも、ちょげ(@chogetarou)です。

リストの要素をタップした際に、何かしらの処理をする方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

Listのの要素にタップ処理を追加するには、onTapGesture修飾子を使います。

まず、Listの要素の「onTapGesture」を付与します。

そして、onTapGestureのクロージャーにタップした際の処理を追加します。

List {
    ItemView()
       .onTapGesture {
           //タップ処理
       }
}

onTapGesture修飾子を使えば、リストの要素にタップ処理を追加することができます。

使用例

以下は、使用例です。

struct ContentView: View {
    @State var counters = [0, 0, 0, 0, 0]
    var body: some View {
            List {
                ForEach (0 ..< counters.count, id: \.self) { index in
                    HStack {
                        Text("Count : \(counters[index])")
                        Spacer()
                    }
                    .contentShape(Rectangle())
                    .onTapGesture {
                        self.counters[index] += 1
                    }
                }
            }
    }
}

コメント

タイトルとURLをコピーしました