Swift – 實現搖一搖功能 💥
在 iOS 上,搖一搖功能是一個很常見的功能,它可以讓使用者在搖動手機時,觸發一些事件,例如改變畫面、播放音效等等。在 Swift 中,我們可以使用 Core Motion 框架來實現搖一搖功能。
首先,我們需要在 info.plist 中加入 Privacy – Motion Usage Description,讓使用者知道我們為什麼要使用他們的搖動資料:
NSMotionUsageDescription
我們需要您的搖動資料來觸發搖一搖功能
接著,我們可以在 ViewController 中加入以下程式碼:
import UIKit
import CoreMotion
class ViewController: UIViewController {
let motionManager = CMMotionManager()
override func viewDidLoad() {
super.viewDidLoad()
// 啟動搖一搖功能
motionManager.startAccelerometerUpdates(to: .main) {
[weak self] (data, error) in
guard let data = data, error == nil else { return }
// 如果搖動加速度大於 2.0,就觸發搖一搖功能
if (data.acceleration.x > 2.0 || data.acceleration.y > 2.0 || data.acceleration.z > 2.0) {
self?.shakeDetected()
}
}
}
func shakeDetected() {
// 在這裡實作搖一搖功能
}
}
在上面的程式碼中,我們使用 CMMotionManager
來啟動搖一搖功能,並且在 startAccelerometerUpdates
中設定一個閥值,當加速度大於 2.0 時,就會觸發 shakeDetected
方法,在這個方法中,我們可以實作搖一搖功能。
最後,記得在 viewDidDisappear
中停止搖一搖功能:
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
// 停止搖一搖功能
motionManager.stopAccelerometerUpdates()
}
這樣,我們就可以在 Swift 中實現搖一搖功能了!
推薦閱讀文章
Swift Shake Gesture Tutorial
iOS Motion Framework: Detecting Device Motion with Core Motion
How to detect shaking in iOS
iOS Accelerometer Tutorial: Getting Started
UIKit Dynamics Tutorial: Getting Started</a