作者: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。