微信的摇一摇功能想必大家都用过。过春节的时候抢红包也没少摇吧。那么用swift语言怎样实现这么酷炫的功能呢。摇动属于IOS内置可识别的一种动作,在你须要实现摇动功能的viewcontroller中,在viewDidLoad方法中增加下面代码:

UIApplication.sharedApplication().applicationSupportsShakeToEdit = trueself.becomeFirstResponder()

第一句是要求当前页面支持对摇动事件可编辑的支持,设置为true后我们能够实现对应的方法,稍后会介绍。

第二句是把当前页面作为第一反应者,也就说我们有不论什么操作结果都会反映到当前页面中。

如今我们能够使用与摇动相关的方法了,主要有三个:motionBegin、motionEnded、motionCancelled。

分别捕获摇动開始、摇动结束和摇动取消三个动作。

我们选用motionEnded来举例:

override func motionEnded(motion: UIEventSubtype, withEvent event: UIEvent) {if motion == UIEventSubtype.MotionShake{var alertController1 = UIAlertController(title: "恭喜你,成功了!

", message: nil, preferredStyle: .Alert) var cancelAction = UIAlertAction(title: "取消", style: .Cancel, handler: nil) alertController1.addAction(cancelAction) self.presentViewController(alertController1, animated: true, completion: nil) } }

这种方法是在motion结束的时候推断。假设刚才的motion是摇动的话,那么弹出一个警告框,提示“恭喜你,成功了。”。以下我们用我近期在做的一个APP来測试下,这是摇动前的画面:

然后我们摇动手机,看看效果:

你能够在这三个方法中增加自己须要的代码。实现更丰富的功能。

最后再说一点。看网上之前的资料说须要添加方法,由于大部分view不支持firstresponder:

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

可能这是曾经的版本号了。我用的是xcode6.2正式版,亲測是不须要加这种方法的。

转载于:https://www.cnblogs.com/yangykaifa/p/7105821.html

swift UI专项训练39 用Swift实现摇一摇功能相关推荐

  1. Swift UI专项训练7 数据添加

    上一话我们使用了自己定义的控制器之后发现tableview上的餐馆没有了,这一话我们来添加数据,新添加一个餐馆类,这个类我们不需要继承系统的类,直接添加一个swift文件就好 import Found ...

  2. swift UI专项训练5 定制视图控制器

    我们现在已经添加了两个场景了,尽管我们有默认的视图控制器,但是我们还是想自己定制一下自己的控制器,我们之前一直在storyboard上做操作,现在来些一些代码. 在工程目录中右键选择new fie,在 ...

  3. swift UI专项训练4 场景过渡-转场

    上一话中我们创建了两个场景,这一话我们想要实现两个场景间的过渡.我们只需要增加一个导航条.选中我们上一话中创建的Table View Controller,点击工具栏上面的editor,选择Embed ...

  4. swift UI专项训练20 WebView浏览器

    WebView就是一个HTML浏览器,用来显示网页,webView的属性如图: Scaling中如果勾选了后面的话,那么打开的网页会根据webView的尺寸来调整尺寸.Phone Numbers会跟踪 ...

  5. swift UI专项训练15 PcikerView老虎机视图

    老虎机相信大家都知道,像一组滚轴,而我们选中其中的某一组值.ios的闹钟选择时间的时候就是这么设计的.在storyboard中拖拽一个pickerview,显示如下: pickerView是没法选择默 ...

  6. swift UI专项训练21 网页浏览器

    网页浏览器不同于上一话的webview,我们的网页浏览器不要求用户输入前面的HTTP,并且能实现自动布局,这一话的内容是前几话的总结.新建一个工程,然后拖拽一个text label,我们来看下右下角的 ...

  7. Swift UI开发初探

    今天凌晨Apple刚刚发布了Swift编程语言,Swift是供iOS和OS X应用编程的新编程语言.相信很多开发者都在学习这门新语言. 废话不多说,下面我就来学习使用Swift创建一个简单的UI应用程 ...

  8. swift UI 学习 (一)

    swift UI 学习 Swift UI 简介 SwiftUI 的特点是什么 1. 声明式语法 2. 拥有更直观的新设计工具 3. 为所有的苹果设备提供原生体验 SwiftUI 代码实例 Swift ...

  9. 30个Swift UI控件

    30个让你眼前一亮的Swift UI控件 No.1 TwicketSegmentedControl 多页面切换滑块控件,能处理滑块的惯性,可以直接将滑块甩到到另一侧. No.2 PagingMenuC ...

最新文章

  1. SpringMVC解决@ResponseBody返回乱码问题
  2. 简述JavaME,JavaSE,JavaEE
  3. Castle ActiveRecord学习实践(1):快速入门指南
  4. 在maltab中画带参数的函数图像
  5. mxnet基础到提高(38)-自动梯度计算
  6. 图论为什么这么难_图论是什么,为什么要关心?
  7. 前端学习(2914):差值表达式的用法
  8. 树--树的基本性质(JAVA)
  9. 计算机基础理论知识的论文,计算机基础毕业论文
  10. QT中PRO文件写法
  11. DAY24:信息搜集
  12. flash人物原地走路_Flash怎么制作一个行走的小人动画?
  13. 202019 大战360弹窗广告
  14. 无线通信中多径传播包络服从瑞利衰落衰落MATLAB仿真
  15. 康涅狄格大学计算机科学排名,2015年US News美国大学计算机专业 Computer Science排名?...
  16. 个人理解设计为何要多用组合,少用继承
  17. 【服务器】 Windows Server 2008 R2 配置HTTPS TLS1.2
  18. 网络与信息安全-第三章-对称秘钥加密算法
  19. RecycleView实现像ViewPager一次滑一页效果
  20. FireStart教程:基于SharePoint的出差报销流程二

热门文章

  1. springside地址
  2. rpm包管理功能全解
  3. ob_start()失效与phpunit的非正常结束
  4. 你需要的不是重构,而是理清业务逻辑(转)
  5. 实验四十一、×××(IPSec)的配置
  6. 11.02T1 几何
  7. 某宝千万级规模高性能、高并发的网络架构
  8. Searchable(搜索功能)(转)
  9. vs2012 智能提示消失解决办法
  10. Android网络编程