使用 SwiftUI 检测多个手指的长按

问题描述 投票:0回答:2

是否有一个很好的代码示例(或文档)来展示如何检测多个手指(几乎)同时进行的长按。

我想在每个手指周围画一个圆圈。

通过长按和拖动手势链接,可以给我长按的位置。我想知道如何进行多次长按。

swift swiftui gesture
2个回答
0
投票

SwiftUI 未提供直接方法来检测开箱即用的特定数量手指的长按手势。您可以通过使用 UIKit 的 UILongPressGestureRecognizer 并将其集成到您的 SwiftUI 中来实现此目的。


-1
投票
    struct ContentView: View {
        // State variable to keep track of long press state
        @State private var isLongPressing = false
        
        var body: some View {
            VStack {
                // View to detect long press
                Rectangle()
                    .fill(isLongPressing ? Color.red : Color.blue)
                    .frame(width: 200, height: 200)
                    .gesture(
                        LongPressGesture(minimumDuration: 1.0) // Adjust duration as needed
                            .onChanged { _ in
                                // Long press detected, update state
                                isLongPressing = true
                            }
                            .onEnded { _ in
                                // Long press ended, update state
                                isLongPressing = false
                            }
                    )
                    .padding()
                
                // Display long press state
                Text(isLongPressing ? "Long Pressing" : "Not Long Pressing")
                    .padding()
            }
        }
    }
    
    struct ContentView_Previews: PreviewProvider {
        static var previews: some View {
            ContentView()
} }
© www.soinside.com 2019 - 2024. All rights reserved.