Swift – 實現搖一搖功能 💥

在 iOS 上,搖一搖功能是一個很常見的功能,它可以讓使用者在搖動手機時,觸發一些事件,例如改變畫面、播放音效等等。在 Swift 中,我們可以使用 Core Motion 框架來實現搖一搖功能。

首先,我們需要在 info.plist 中加入 Privacy – Motion Usage Description,讓使用者知道我們為什麼要使用他們的搖動資料:

<key>NSMotionUsageDescription</key>
<string>我們需要您的搖動資料來觸發搖一搖功能</string>

接著,我們可以在 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

延伸閱讀本站文章

更多swift相關文章

Swift – 實現搖一搖功能 💥

Categorized in:

Tagged in:

,