做者:Arthur Knopper,原文連接,原文日期:2017-04-18
譯者:Crystal Sun;校對:way;定稿:shanksios
iOS 設備能夠檢測搖一搖手勢,在本節教程中,咱們將學習如何檢測搖一搖手勢,檢測到該手勢後,更新 label 的文案。本節教程使用的是 Xcode 8.3 和 iOS 10.3。git
打開 Xcode,建立一個 Single View Application。github
Product Name 使用 IOS10ShakeGestureTutorial,填寫本身的 Organization Name 和 Organization Identifier,Language 一欄選擇 Swift,Devices 一欄選擇 iPhone。swift
打開 Storyboard,從 Object Library 中拖拽一個 Label 控件放到 View Controller 上,雙擊 Label 控件將文案修改成 「Shake me」。選中該 Label,點擊 Auto Layout 的 Align 按鈕。選中 「Horizontally in Container」,點擊 「Add 1 Constraint」。ide
選中 Label,點擊 Auto Layout 的 Pin 按鈕,選中上邊距約束線,點擊 「Add 1 Constraint」。學習
Storyboard 看起來應以下圖所示。測試
打開 Assistant Editor,確保 ViewController.swift 可見。按住 Control 鍵,將 Label 拖拽到 ViewController 類下,建立下圖的 Outlet。ui
打開 ViewController.swift 文件,首先要讓 View Controller 迴應點擊事件,能夠經過 ViewController FirstResponder 實現,添加下列方法:spa
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 翻譯組翻譯,已經得到做者翻譯受權,最新文章請訪問 http://swift.gg。