如何检测摇一摇手势

原文链接:https://www.ioscreator.com/tutorials/detect-shake-gestures-ios-tutorial-ios10
作者:Arthur Knopper
原文日期:2017/04/18
译者:Crystal Sun

iOS 设备可以检测摇一摇手势,在本节教程中,我们将学习如何检测摇一摇手势,检测到该手势后,更新 label 的文案。本节教程使用的是 Xcode 8.3 和 iOS 10.3。

设置工程

打开 Xcode,创建一个 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 看起来应如下图所示。

打开 Assistant Editor,确保 ViewController.swift 可见。按住 Control 键,将 Label 拖拽到 ViewController 类下,创建下图的 Outlet。

打开 ViewController.swift 文件,首先要让 View Controller 回应点击事件,可以通过 ViewController FirstResponder 实现,添加下列方法:

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 翻译组翻译,已经获得作者翻译授权。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 作者:Arthur Knopper,原文链接,原文日期:2017-04-18译者:Crystal Sun;校对:w...
    梁杰_numbbbbb阅读 736评论 1 2
  • iOS 设备可以检测摇一摇手势,在本节教程中,我们将学习如何检测摇一摇手势,检测到该手势后,更新 label 的文...
    请叫我周小帅阅读 666评论 0 1
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,245评论 4 61
  • 风,挤满夜色 狂躁了一阵子,喘着 粗气,脚跟脚 噼啪地以点连成面,嘈嘈切切 把零点时针推动,绞杀了 所有的安静,淹...
    2b4c67af34a7阅读 166评论 0 2
  • 看到这幅画,大家感觉如何?反正我看到它的第一反应是:惊叹。 我很佩服作者能够把这么多的元素融入到一幅画中,并且看起...
    余祖江视角阅读 4,666评论 31 45