代码地址如下:
http://www.demodashi.com/demo/12461.html

1. 常用场景

继 iPhone7/7P 实体 home 键出现后,home 键再也无法通过真实的物理按压反馈给用户了, apple 使用各种不同的振动效果代替了之前的按压反馈,效果非常好。

振动反馈的使用场景还仅费如此,现在很多 app 中增加了振动反馈的效果。

例:

① 新浪微博,下拉刷新会有振动效果反馈

② 摩拜单车,扫码开锁成功后会有振动效果

2. 源码解释

cocoa 框架中提供了几种振动反馈效果


// OC 代码 // UIImpactFeedbackGenerator
typedef NS_ENUM(NSInteger, UIImpactFeedbackStyle) {
UIImpactFeedbackStyleLight,
UIImpactFeedbackStyleMedium,
UIImpactFeedbackStyleHeavy
}; // UINotificationFeedbackGenerator
typedef NS_ENUM(NSInteger, UINotificationFeedbackType) {
UINotificationFeedbackTypeSuccess,
UINotificationFeedbackTypeWarning,
UINotificationFeedbackTypeError
};

/// Swift 代码 public enum UIImpactFeedbackStyle : Int {
case light
case medium
case heavy
} public enum UINotificationFeedbackType : Int {
case success
case warning
case error
}

UIImpactFeedbackGeneratorUINotificationFeedbackGenerator 均继承于 UIFeedbackGenerator

封装

OC 版

// 创建一个枚举
typedef enum {
light = 0,
medium,
heavy,
success,
warning,
error,
none
}FeedbackType;

Swift 版本


/// 创建枚举
public enum FeedbackType: Int {
case light
case medium
case heavy
case success
case warning
case error
case none
} /// 创建类方法,随时调用
class func impactFeedback(style: FeedbackType) { if #available(iOS 10.0, *) { switch style {
case .light:
let generator = UIImpactFeedbackGenerator(style: .heavy)
generator.impactOccurred()
case .medium:
let generator = UIImpactFeedbackGenerator(style: .medium)
generator.impactOccurred()
case .heavy:
let generator = UIImpactFeedbackGenerator(style: .heavy)
generator.impactOccurred()
case .success:
let generator = UINotificationFeedbackGenerator()
generator.notificationOccurred(.success)
case .warning:
let generator = UINotificationFeedbackGenerator()
generator.notificationOccurred(.warning)
case .error:
let generator = UINotificationFeedbackGenerator()
generator.notificationOccurred(.error)
default:
break
} } }

3. 项目结构图

对系统方式进行封装,更方便的调用

代码分 OC 版和 Swift 版

4. Demo 截图



注意事项

请使用真机测试效果。

要求系统版本最低 iOS10.

iOS 振动反馈

代码地址如下:
http://www.demodashi.com/demo/12461.html

注:本文著作权归作者,由demo大师代发,拒绝转载,转载需要作者授权

iOS 振动反馈的更多相关文章

  1. IOS要用到的东西

    code4app.com 这网站不错,收集各种 iOS App 开发可以用到的代码示例 cocoacontrols.com/ 英文版本的lib收集 objclibs.com/ 精品lib的收集网站 h ...

  2. iOS开发(Objective-C)常用库索引

    code4app.com 这网站不错,收集各种 iOS App 开发可以用到的代码示例 cocoacontrols.com/ 英文版本的lib收集 objclibs.com/ 精品lib的收集网站 h ...

  3. iOS各种类

    http://www.isenhao.com/xueke/jisuanji/bcyy/objc.php http://www.code4app.com 这网站不错,收集各种 iOS App 开发可以用 ...

  4. 2017-04-26 ios ipv6那些事(已完美解决)

    2017-04-26 ios ipv6那些事(已完美解决)   工作单位性质属于外包公司,每天都有几十的app要提交上传至应用市场,于2017年3月份接到ios工程师反馈 Guideline 2.1 ...

  5. iOS(iPhone,iPad))开发(Objective-C)开发库常用库索引

    http://www.code4app.com 这网站不错,收集各种 iOS App 开发可以用到的代码示例  http://www.cocoacontrols.com/ 英文版本的lib收集  ht ...

  6. iOS商品详情、ffmpeg播放器、指示器集锦、自定义圆弧菜单、实用工具等源码

    iOS精选源码 电商商品详情 Swift.两种方式实现tableViewCell拖拽功能 ffmpeg+openGL播放器 微信聊天表情雨.表情下落.表情动画 iOS指示器集锦 弹窗增加 picker ...

  7. 微信小程序~基础组件

    (1)视图容器 名称 功能说明 movable-view 可移动的视图容器,在页面中可以拖拽滑动 cover-image 覆盖在原生组件之上的图片视图 cover-view 覆盖在原生组件之上的文本视 ...

  8. ReactNative入门(安卓)——API(下)

    LayoutAnimation - layout动画 当布局发生改变时的动画模块,它有两个方法: 1. 最常用的方法是 LayoutAnimation.configureNext(conf<Ob ...

  9. Android系统中默认值的意义列表

    转自:http://blog.csdn.net/yabg_zhi_xiang/article/details/51727844 在SettingsProvider中设置系统中默认值,我们可以在fram ...

随机推荐

  1. Shader剔除像素绘制扇形

    Shader "Custom/Indicator" { Properties { _MainTex("Main Texture", 2D) = "wh ...

  2. openssl-1.0.1c交叉编译动态库(转)

    linux编译相关(13)  版权声明:本文为博主原创文章,未经博主允许不得转载. #交叉编译openssl ------直接修改Makefile新加这一行:CROSS_COMPILE= arm-un ...

  3. Bridges

    Bridges 题目描述 YYD为了减肥,他来到了瘦海,这是一个巨大的海,海中有n个小岛,小岛之间有m座桥连接,两个小岛之间不会有两座桥,并且从一个小岛可以到另外任意一个小岛.现在YYD想骑单车从小岛 ...

  4. Python之文件操作:文件、目录的操作

    一.创建 1.创建文件 open(path,'w') 2.创建目录 (1)os.mkdir(pt[, mode=0777]) 新建一个目录pt,参数mode表示生成的目录的权限,默认是超级权限,也就是 ...

  5. ios UIImage 圆形图片剪切方案

    @interface UIImage (Resize) //按形状切割图像 - (UIImage*)cutImageWithRadius:(int)radius; @end //图片剪切 - (UII ...

  6. 收集邮票(bzoj 1426)

    Description 有n种不同的邮票,皮皮想收集所有种类的邮票.唯一的收集方法是到同学凡凡那里购买,每次只能买一张,并且买到的邮票究竟是n种邮票中的哪一种是等概率的,概率均为1/n.但是由于凡凡也 ...

  7. HAOI2008题解

    又来写题解辣-然而并不太清楚题目排列情况...不管辣先写起来- T1:[bzoj1041] 题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1 ...

  8. 【CF1016C】Vasya And The Mushrooms(模拟)

    题意:给定一个2*n的矩阵,每一个点有一个权值,从左上角出发,时间t=0开始,连续的走,将矩阵走完, 每走一步,t++,并且得到t*当前格子的权值的值,求最大的权值和 n<=3e5,1<= ...

  9. 教你怎么使用Windows7系统自带的备份与还原的方法

    原文发布时间为:2010-09-09 -- 来源于本人的百度文章 [由搬家工具导入] 继续单击“下一步”按钮,在其后界面中检查上述备份设置是否正确,如果不正确的话可以直接单击“取消”按钮,重新设置备份 ...

  10. DataRelation 实现父子表 父子级 Repeater的嵌套使用

    原文发布时间为:2009-05-21 -- 来源于本人的百度文章 [由搬家工具导入] DataRelation 实现父子表         if (!IsPostBack)        {      ...