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

UIApplication.sharedApplication().applicationSupportsShakeToEdit = true
self.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正式版。亲測是不须要加这种方法的。

swift UI专项训练39 用Swift实现摇一摇功能的更多相关文章

  1. 小波说雨燕 第三季 构建 swift UI 之 UI组件集-视图集(六)Picker View视图 学习笔记

    想对PickerView进行操作,只能在代码中操作. 下面 ,再添加三个label组件,然后将所有组件配置到代码中(看代码),然后要实现对PickerView的操作,就要实现它的DataSource协 ...

  2. Swift UI

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

  3. Swift UI开发初探

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

  4. Swift UI开发初探 (转)

    原文地址:http://www.tairan.com/archives/6600 关于Swift语法,可以参考<Apple Swift编程语言入门教程> 效果如下: 开发环境 Xcode6 ...

  5. 《Swift开发指南》国内第一本Swift图书上市了

    <Swift开发指南>国内第一本Swift图书上市了 既<courseId=799262">苹果Swift编程语言开发指南>视频教程地址:courseId=79 ...

  6. 窥探Swift系列博客说明及其Swift版本间更新

    Swift到目前为止仍在更新,每次更新都会推陈出新,一些Swift旧版本中的东西在新Swift中并不适用,而且新版本的Swift会添加新的功能.到目前为止,Swift为2.1版本.去年翻译的Swift ...

  7. Swift 3.0 【Swift 3.0 相较于 Swift 2.2 的变化】

    一.编译器和语法变化 函数或方法参数 调用函数或方法时从第一个参数开始就必须指定参数名 在Swift的历史版本中出现过在调用函数时不需要指定任何函数参数(或者从第二个参数开始指定参数名),在调用方法时 ...

  8. iOS 里面 Swift与Objective-C混编,Swift与C++混编的一些比较

        即使你尽量用Swift编写iOS程序,难免会遇到部分算法是用C++语言编写的.那你只能去问问”度娘“或“狗哥”怎么用Swift调用C++算法.   一,C,C++, Objective-C,S ...

  9. Apple Swift中英文开发资源集锦[apple swift resources]

    找到的一些Apple Swift中英文资源原文链接,希望对大家有所帮助.欢迎大家补充,原始资源链接最好! The Swift Programming Language https://develope ...

随机推荐

  1. 1682. [HAOI2014]贴海报

    1682. [HAOI2014]贴海报 ★★☆   输入文件:ha14d.in   输出文件:ha14d.out   简单对比 时间限制:1 s   内存限制:256 MB [题目描述] Byteto ...

  2. 完成fcc作业2时思路

    1.设置导航链接按钮栏时,不能用文档流,要用position:fixed;固定在窗口上方, 其他普通流盒子按上下顺序就用position:relative:后面发现导航栏被普通流盒子挡在了下面,就设置 ...

  3. JavaScript(十一)Dom

    Dom(Document object module) 1.获取dom对象的方法 正常用的方法 推荐 getElementById()//通过id选择唯一的dom getElementsByClass ...

  4. java内存组成

     java内存组成介绍:堆(Heap)和非堆(Non-heap)内存 按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配.堆是在 Java 虚拟机启动 ...

  5. getBlockTable delete pline

    AcDbBlockTable *pBlkTab; Acad::ErrorStatus es = acdbHostApplicationServices()->workingDatabase() ...

  6. 第二节:SQLServer导出-重置sa密码-常用sql语句

    1.SQLServer导出: 点击要导出数据库----->右键(任务)----->生成脚本----->下一步----->下一步(高级)要编写脚本的数据类型---选择架构和数据 ...

  7. 【nginx】解决nginx搭建图片服务器访问图片404

    图片通过ftp服务上传到/home/ftpuser/www/images目录下后访问 http://192.168.128.128/images/xxx.jpg 还是 404 NOT FOUND ,解 ...

  8. layer弹出层无法关闭问题

    parent.layer.closeAll();如果关闭指定弹出层,获取对应弹出层的索引,进行关闭

  9. share——Alpha版(内部测试版)发布

    我们产品的下载二维码: 使用说明: 后期会进行更新,文件下载位置

  10. iview“官方“实现的右键菜单

    博客开篇,没想到第一篇博文竟然是前端的,虽略显尴尬,但正能量溢出,你我可能遇到同样问题,在这里分享下个人方案,希望对你有用. 官方目前不提供右键菜单,这里借助Dropdown(下拉菜单)来实现,故为“ ...