Skip to content

事件

点击

使用 onTapGesture 方法作用在需要的元素上

onTapGesture 可接收 count 参数,可以实现多次点击执行的效果

swift
import SwiftUI

struct ContentView: View {
    @State var isClick: Bool = true

    var body: some View {
        VStack {
            // 1. 点击
            Circle()
                .frame(width: 100)
                .foregroundStyle(isClick ? .red : .blue)
                .onTapGesture {
                    withAnimation {
                        isClick.toggle()
                    }
                }

            // 2. 连续点击
            Circle()
                .frame(width: 100)
                .foregroundStyle(isClick ? .red : .blue)
                // count 参数:需要点击几下
                .onTapGesture(count: 2) {
                    isClick.toggle()
                }
        }
    }
}

#Preview {
    ContentView()
}

长按

使用 onLongPressGesture 方法作用在需要的元素上

swift
import SwiftUI

struct ContentView: View {
    @State var isClick: Bool = true

    var body: some View {
        VStack {
            Circle()
                .frame(width: 100)
                .foregroundStyle(isClick ? .red : .blue)
                // onLongPressGesture 长事件
                .onLongPressGesture {
                    isClick.toggle()
                }
        }
    }
}

#Preview {
    ContentView()
}