如何檢測搖一搖手勢

作者:Arthur Knopper,原文鏈接,原文日期:2017-04-18
譯者:Crystal Sun;校對:way;定稿:shanks

iOS 設(shè)備可以檢測搖一搖手勢,在本節(jié)教程中,我們將學習如何檢測搖一搖手勢,檢測到該手勢后,更新 label 的文案。本節(jié)教程使用的是 Xcode 8.3 和 iOS 10.3。

設(shè)置工程

打開 Xcode,創(chuàng)建一個 Single View Application。

Product Name 使用 IOS10ShakeGestureTutorial,填寫自己的 Organization Name 和 Organization Identifier,Language 一欄選擇 Swift,Devices 一欄選擇 iPhone。

打開 Storyboard,從 Object Library 中拖拽一個 Label 控件放到 View Controller 上,雙擊 Label 控件將文案修改為 “Shake me”。選中該 Label,點擊 Auto Layout 的 Align 按鈕。選中 “Horizontally in Container”,點擊 “Add 1 Constraint”。

選中 Label,點擊 Auto Layout 的 Pin 按鈕,選中上邊距約束線,點擊 “Add 1 Constraint”。

Storyboard 看起來應(yīng)如下圖所示。

打開 Assistant Editor,確保 ViewController.swift 可見。按住 Control 鍵,將 Label 拖拽到 ViewController 類下,創(chuàng)建下圖的 Outlet。

打開 ViewController.swift 文件,首先要讓 View Controller 回應(yīng)點擊事件,可以通過 ViewController FirstResponder 實現(xiàn),添加下列方法:

override func becomeFirstResponder() -> Bool {
    return true
}

接下來,要想檢測搖一搖手勢,添加 motionEnded(_:with:) 方法。

override func motionEnded(_ motion: UIEventSubtype, with event: UIEvent?) {
    if motion == .motionShake {
        shakeLabel.text = "Shaken, not stirred"
    }
}

如果確實是一個 Shake Gesture(搖一搖),那么 Label 的文案就會更新。運行工程,搖一搖測試機。可以點擊 iOS 模擬器菜單欄 Hardware 選項下的 Shake Gesture 來搖一搖。

可以從 github 上下載 IOS10ShakeGestureTutorial 教程的源代碼。

本文由 SwiftGG 翻譯組翻譯,已經(jīng)獲得作者翻譯授權(quán),最新文章請訪問 http://swift.gg。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容