如何检测摇一摇手势

做者: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

相关文章
相关标签/搜索