3D Touch是一种立体触控技术,被苹果称为新一代多点触控技术,是在Apple Watch上采用的Force Touch,屏幕可感应不同的感压力度触控。3D Touch,苹果iPhone 6s的新功能。有Peek
和Pop
两种新手势。3D-Touch技术,相对于多点触摸在平面二维空间的操作,3D-Touch技术增加了对力度和手指面积的感知,可以通过长按快速预览/查看你想要的短信/图片/超链接等内容,Peek和Pop手势的响应时间可迅捷到10ms和15ms
app内使用3Dtouch
一. 在controller中判断3DTouch是否可用
1 |
|
二. 为view(这里以cell为例)注册3Dtouch
1 |
|
三. 遵守UIViewControllerPreviewingDelegate协议, 并实现两个协议方法
1 |
|
四. 实现peek时上拉,在底部出现菜单
承接上文, 我们peek and push 到目的控制器 LabelViewController
之后, 在LabelViewController
中实现以下方法, 即可在上级控制器重压时能上拉显示菜单
1 |
|
另外, action时可以成组group
1 |
|
app外使用 - Icon 3Dtouch
创建方式有两种:
1 |
|
-
⚠️:UIApplicationShortcutItemIconFile:使用项目中的图片作为标签图标 (可选) 图片必须是正方形、单色并且尺寸是35*35像素的图片
- ⚠️:如果使用了自定义图片,系统的UIApplicationShortcutItemIconType字段会失效
- ⚠️:没有使用系统图片或者自定义图片,那么图片位置会出现黑色原点
- ⚠️:自定义图片必须是单色图片
- ⚠️:建议35*35 2x图
-
⚠️:最多添加4个,第五个可以是系统默认带上的分享功能
- 通过配置info.plist的方式创建
-
通过代码创建
1
2
3
4
5- (void)creatShortcutItem { UIApplicationShortcutItem *item1 = [[UIApplicationShortcutItem alloc] initWithType:@"com.long.he2" localizedTitle:@"吃饭" localizedSubtitle:@"我是案例看时间多浪费卡洛斯 跨境收到了缴费案例看世界的发掘" icon:[UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeAdd] userInfo:@{@"icon": @"iconinfo"}]; [UIApplication sharedApplication].shortcutItems = @[item1]; }
点击事件响应
1 |
|
重压出现today样式