SwiftUI如何检测摇动手势?

3 min read

在SwiftUI中,可以使用gyroscopicMotion的环境值来检测摇动手势。以下是一个简单的示例,演示如何使用环境值启用摇动手势检测:

struct ContentView: View {
    @Environment(\.gyroscopicMotion) var gyroscopicMotion
    
    var body: some View {
        VStack {
            Text("Shake your device!")
        }
        .onReceive(gyroscopicMotion) { motion in
            if motion.hasShaken {
                print("Device has been shaken!")
            }
        }
    }
}

在此示例中,我们使用onReceive修饰符来订阅gyroscopicMotion环境值的更改。当设备被摇动时,motion.hasShaken将为true,我们可以触发需要的操作。