3D-Touch Home Screen Quick Actions 使用
1. 3D-Touch简单介绍
3D-Touch是iPhone 6s推出的一种可以让你与手机进行互动的全新方式。这一次,iPhone 能够感应你按压屏幕的力度。除了轻点、轻扫、双指开合这些熟悉的 Multi‑Touch 手势之外,3D Touch 还带来 Peek 和 Pop,为 iPhone 的使用体验开拓出全新的维度。而且,当你使用 3D Touch 时,iPhone 将回以轻微的触感,让你不仅能够看到按下屏幕的操作效果,还能感觉得到。
3D-Touch含有3种feature功能,压力感应(Press Sensitivity)、Peek和Pop手势、快捷方式(Quick Actions)

2. 如果让模拟器支持3D-Touch
目前官方文档还不支持3d-touch,可以借助github的开源项目,SBShortcutMenuSimulator(点击下载).
安装和使用也比较简单
- 安装
git clone https://github.com/DeskConnect/SBShortcutMenuSimulator.git
cd SBShortcutMenuSimulator
make - 安装完,在SBShortcutMenuSimulator的目录执行以下方法
xcrun simctl spawn booted launchctl debug system/com.apple.SpringBoard --environment DYLD_INSERT_LIBRARIES=$PWD/SBShortcutMenuSimulator.dylib
xcrun simctl spawn booted launchctl stop com.apple.SpringBoard - 使用
// 'com.x.x' 为程序的bundle id, id可以随便指定
echo 'com.xxx.xxx' | nc 127.0.0.1
3. Quick Actions2种适配方法
1. 静态定义
静态定义常用的key:
UIApplicationShortcutItemType //(必须使用) 用来区分与其他快速选项的分类
UIApplicationShortcutItemTitle //(必须使用) 快速选项显示的标题
UIApplicationShortcutItemSubtitle // 快速选项显示的子标题
UIApplicationShortcutItemIconType // 图片类型由系统提供,大约提供了29种
UIApplicationShortcutItemIconFile // 自定义的图标
UIApplicationShortcutItemUserInfo // 附加信息(NSDictionary)
静态设置在Info.plist文件中定义
<key>UIApplicationShortcutItems</key>
<array>
<dict>
<key>UIApplicationShortcutItemIconType</key>
<string>UIApplicationShortcutIconTypeBookmark</string>
<key>UIApplicationShortcutItemTitle</key>
<string>打开最后阅读的书籍</string>
<key>UIApplicationShortcutItemType</key>
<string>3dTouchOpenBookItem</string>
<key>UIApplicationShortcutItemUserInfo</key>
<dict>
<key>shorcutKey</key>
<string>shorcutValue</string>
</dict>
</dict>
<dict>
<key>UIApplicationShortcutItemIconType</key>
<string>UIApplicationShortcutIconTypeSearch</string>
<key>UIApplicationShortcutItemTitle</key>
<string>搜索书架</string>
<key>UIApplicationShortcutItemType</key>
<string>3dTouchSearchItem</string>
</dict>
<dict>
<key>UIApplicationShortcutItemIconFile</key>
<string>dl_d.png</string>
<key>UIApplicationShortcutItemTitle</key>
<string>热门活动</string>
<key>UIApplicationShortcutItemType</key>
<string>QuickActionActivityItem</string>
</dict>
</array>
ps : 如果使用 UIApplicationShortcutItemIconFile, UIApplicationShortcuIconType将不起作用,使用参考上面红色字体的地址
2. 动态定义
- (void)initApplication3DTouch:(UIApplication *)application {
NSMutableDictionary *userInfo = [[NSMutableDictionary alloc] init];
[userInfo setObject:@"哈哈" forKey:@"haha"];
// 自定义获取本地的图片并传递一些参数
UIMutableApplicationShortcutItem *itemTest = [[UIMutableApplicationShortcutItem alloc] initWithType:@"" localizedTitle:@"标题" localizedSubtitle:@"副标题" icon:[UIApplicationShortcutIcon iconWithTemplateImageName:@"本地图片"] userInfo:userInfo];
// 打开最后阅读的一本书
UIApplicationShortcutIcon *openBook = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeBookmark];
UIMutableApplicationShortcutItem *itemOpenBook = [[UIMutableApplicationShortcutItem alloc] initWithType:@"" localizedTitle:@"打开最后阅读的书籍"];
itemOpenBook.icon = openBook;
// 找书
UIApplicationShortcutIcon *searchBook = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeSearch];
UIMutableApplicationShortcutItem *itemSearchBook = [[UIMutableApplicationShortcutItem alloc] initWithType:@"" localizedTitle:@"搜索书架"];
itemSearchBook.icon = searchBook;
//
application.shortcutItems = @[itemTest, itemOpenBook, itemSearchBook];
}
3. 响应Quick Actions事件
- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler {
if ([shortcutItem.type isEqualToString:@""]) {
NSLog(@"搜索书架");
} else if ([shortcutItem.type isEqualToString:@""]) {
NSDictionary *dict = shortcutItem.userInfo;
NSLog(@"dict为传递过来的参数");
}
}
3. 备注
1. 快捷标签最多可以创建四个,包括静态的和动态的. 静态的会显示在动态的前面
2. 静态的可以在程序不打开的情况下显示,动态的不可以
3. 关于如何动态的移除动态添加的Quick Actions
application.shortcutItems = nil; // 尝试了一下,可以通过这个方式把动态quick action移除
如果你不是在wb145230博客园看到本文,请点击查看原文.
3D-Touch Home Screen Quick Actions 使用的更多相关文章
- iOS9 3DTouch 之 Home Screen Quick Actions
最后更新:2016-12-18 测试环境: Xcode8.1 一.前言 iOS9 已经过去一年了,3D Touch也在项目中实战过,但一直没有总结一下,现在新的项目也用到了3D Touch, 网上找了 ...
- iOS 3D Touch实践
本文主要讲解3DTouch各种场景下的开发方法,开发主屏幕应用icon上的快捷选项标签(Home Screen Quick Actions),静态设置 UIApplicationShortcutIte ...
- 初学3D Touch
引言 With iOS 9, new iPhone models add a third dimension to the user interface. A user can now press y ...
- iOS 3D Touch 适配开发
3D Touch的主要应用 文档给出的应用介绍主要有两块: 1.A user can now press your Home screen icon to immediately access fun ...
- 【iOS】3D Touch
文章内容来源于Apple的开发者文档:https://developer.apple.com/library/content/documentation/UserExperience/Conceptu ...
- 3d touch 应用 2 -备用
一.引言 在iphone6s问世之后,很多果粉都争先要体验3D Touch给用户带来的额外维度上的交互,这个设计之所以叫做3D Touch,其原理上是增加了一个压力的感触,通过区分轻按和重按来进行不同 ...
- iOS 3D Touch功能 3 -备
新的触摸体验——iOS9的3D Touch 一.引言 二.在模拟器上学习和测试3D Touch 附.SBShortcutMenuSimulator的安装和使用 三.3D Touch的主要应用 四.3D ...
- iOS 9之3D Touch
金田 北京时间9月10日凌晨, Apple在美国旧金山比尔格拉汉姆公民大礼堂(Bill Graham Civic Auditorium)召开新品发布会.本次着重介绍了3D Touch功能, 大体介绍一 ...
- iOS9新特性-3D Touch
本文主要讲解3DTouch各种场景下的开发方法,开发主屏幕应用icon上的快捷选项标签(Home Screen Quick Actions),静态设置 UIApplicationShortcutIte ...
随机推荐
- MouseGestureL.ini shift up/down/left/right edge
MouseGestureL.ini [ShiftPress]Icon=C:\Windows\System32\explorer.exe,6Custom=GetKeyState("Shift& ...
- svn删除文件出错的经验总结
作者:朱金灿 来源:http://blog.csdn.net/clever101 今天有个同事在没有将工程从VS解决方案中移除的情况下使用svn对一个工程重命名,结果在提交时出错了,提示:没有匹配的可 ...
- EXTJS和javaweb应用的开发思路
近期.做些几个基于extjs界面的应用.在此.总结一下要点.标题是基于javaweb,可是基本上各种server端语言都适用.使用Extjs做界面,无非就是取消了原来非常多的jsp文件,转而使用Ext ...
- ElasticSearch:分析器
ElasticSearch入门 第七篇:分析器 这是ElasticSearch 2.4 版本系列的第七篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch El ...
- VS2012经常使用的快捷方式完成最全面
(1)如何更改设置快捷键 1.转到工具----选项 对话框 2.选 环境---->键盘 3.在 [显示命令包括] 以下的对话框中输入"对齐"keyword,然后就会在这个 ...
- Sql 将多个表查询的结果进行再次查询
把你目前查到结果集定义为一个临时表 tempTable 下面是如何查 SELECT * FROM tempTable where 关键字=‘’举例 select book_num,book_name, ...
- 自己动手编写一个VS插件(六)
作者:朱金灿 来源:http://blog.csdn.net/clever101 在上篇中我们已经实现了创建和显示一个工具栏出来,它的效果图是这样的: 现在我们实现一些简单功能,具体就是单击按钮弹出一 ...
- IOC介绍及其简单实现
预备知识: Java反射原理,XML及其解析 IOC:Inversion of Control,控制反转,它最主要反映的是与传统面向对象(OO)编程的不同.通常我们编程实现某种功能都需要几个对象相 ...
- 创建asp.net core 的静态网站
这个名字听起来很怪 既然是静态网站 为什么要是asp.net core的呢? 1.在vs上面好像不能创建纯静态的网站,所以我们就想创建一个asp.net core的空网站 然后在里面使用静态的html ...
- Opencv中K均值算法(K-Means)及其在图像分割中的应用
K均值(K-Means)算法是一种无监督的聚类学习算法,他尝试找到样本数据的自然类别,分类是K由用户自己定义,K均值在不需要任何其他先验知识的情况下,依据算法的迭代规则,把样本划分为K类.K均值是最常 ...