本博客包含了如何实现iOS摇一摇全步骤,包括了完整的代码。

先附上demo地址https://github.com/Liuyubao/LYBShake ,支持swift3.0+。

一、导包

项目主要使用到了AVFoundation这个包。

二、继承代理,并实现协议方法

在要监听摇一摇的VC中继承AVAudioPlayerDelegate这个代理(为了播放音效),并实现以下3个代理方法。



开始摇动的代理方法:



取消摇动的代理方法(一般指的是中途摇动动作被打断):



结束摇动的代理方法:

三、逻辑实现

【在监听摇动的VC中开启摇动感应:】

/**
开启摇动感应
*/
UIApplication.shared.applicationSupportsShakeToEdit = true

【定义摇动手势的上下两部分图:】

@IBOutlet weak var upImg: UIImageView!
@IBOutlet weak var downImg: UIImageView!

【定义要播放的声音,分为摇动过程和摇动结束的声音:】

var player: AVAudioPlayer?

【摇动开始的逻辑:】

1、开始的动画:图片上下移动60;

2、设置开始摇动的音效;

3、结束动画:还原上下两张图片;

【摇动结束的逻辑:】

将所有摇动激发的事件都写在这里,包括音效及数据的更新。

四、github代码

如果本博客对您有帮助,希望可以得到您的赞赏!

完整代码附上:https://github.com/Liuyubao/LYBShake

最新文章

  1. Mac 配置 php-fpm 时出现'/private/etc/php-fpm.conf': No such file or directory (2)
  2. Google和Baidu常用的搜索技巧--转
  3. python FileError
  4. socket.io,环境搭建 & Hello world
  5. Linux权限问题
  6. form提交数据中文乱码问题总结
  7. android CMWAP, CMNET有何差别
  8. 【Android进阶】Android面试题目整理与讲解(一)
  9. 计算机程序的思维逻辑 (73) - 并发容器 - 写时拷贝的List和Set
  10. 【国家集训队2010】小Z的袜子(莫队)
  11. pycharm 记录
  12. seafile ubuntu 安装相关
  13. VueJs(1)---快速上手VueJs
  14. js 乘除法小数问题
  15. 第一个dubbo程序
  16. Iterator,迭代器模式,C++描述
  17. FFT理解
  18. 20165326 学习基础和c语言基础调查
  19. Zookeeper简单初应用
  20. EditPlus 中文版停止更新

热门文章

  1. 读《深入理解Elasticsearch》点滴-查询二次评分
  2. 使用ImageIO.write上传二维码文件时候,提示系统找不到指定路径
  3. Java8新特性——接口默认方法
  4. Centos6 日常使用小结
  5. laravel 5.5 运行在 php7.0 报错 Symfony\Component\Translation\Translator.php FatalThrowableErrorParse error: syntax error, unexpected '?', expecting variable (T_VARIABLE)
  6. 在Mac上搭建带ssl协议和域名指向的Apache服务器
  7. C#的FTP服务器源代码
  8. 02-19 k近邻算法(鸢尾花分类)
  9. Java中获取刚插入数据库中的数据Id(主键,自动增长)
  10. Java微服务(二):负载均衡、序列化、熔断