一. 简介
3D Touch是ios9开始出现的新特性,主要体现为2个方面:
1. 在桌面上对app的图标进行重力按压,会出现快捷菜单
2. 在app内,对一个view进行重力按压,可看到其详情view;如果此刻上滑,会有选项出现;如果此刻更加用力一点,就会进入详情view
它通过UITouch的force属性来判断力度
1. force: readonly属性, 触摸的力度
2. maximumPossibleForce :readonly属性, 文档描述如下
The value of this property is sufficiently high to provide a wide dynamic range for values of the force property.
字面意思是:这个属性的值足够高,用以支持force属性值的范围
PS:我始终没读懂,感觉信息少了点.它既然是一个只读属性,那么我们是不能去修改它的(当然用KVO除外)
我真机(iphone6s)调试了一下,结果让我大跌眼镜:
这是我写在viewcontroller里面的,重写touchesBegan方法
<span style="font-family:Microsoft YaHei;font-size:14px;">-(void) touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
NSLog(@"touch begin");
UITouch * touch = touches.anyObject;
NSLog(@"force:%f, maximumPossibleForce:%f", touch.force, touch.maximumPossibleForce);
}</span>
打印出来一看,发现force永远是0,maximumPossibleForce是一个定值:6.666667
真是没办法,这是什么情况,我要哭死在沙滩上了: force不应该随着我的触摸轻重而有不同的值吗?
废话少说,还是先粘贴3D Touch怎么玩吧
1. 桌面出list
第一种,在info.plist中配置