3DTouch简单实现
分两种实现方式:1.静态的在plist文件里面添加,2.在AppDelegate里通过代理使用代码来动态实现。
静态标签是我们在项目的配置plist文件中配置的标签,在用户安装程序后就可以使用,并且排序会在动态标签的前面。
首先,在info.plist文件中添加如下键值(我在测试的时候,系统并没有提示,只能手打上去):
先添加了一个UIApplicationShortcutItems的数组,这个数组中添加的元素就是对应的静态标签,在每个标签中我们需要添加一些设置的键值:
必填项(下面两个键值是必须设置的):
UIApplicationShortcutItemType 这个键值设置一个快捷通道类型的字符串
UIApplicationShortcutItemTitle 这个键值设置标签的标题
选填项(下面这些键值不是必须设置的) :
UIApplicationShortcutItemSubtitle 设置标签的副标题
UIApplicationShortcutItemIconType 设置标签Icon类型
UIApplicationShortcutItemIconFile 设置标签的Icon文件
UIApplicationShortcutItemUserInfo 设置信息字典(用于传值)
二,动态实现
UIApplicationShortcutItem 创建3DTouch标签的类
UIMutableApplicationShortcutItem 创建可变的3DTouch标签的类
UIApplicationShortcutIcon 创建标签中图片Icon的类
1.在AppDelegate的代理方法里实现;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[ self set3DTouch];
}
- (void)set3DTouch{
UIApplicationShortcutIcon *icon1 = [UIApplicationShortcutIcon iconWithTemplateImageName:@"图片1"];
UIApplicationShortcutIcon *icon2 = [UIApplicationShortcutIcon iconWithTemplateImageName:@"图片2"];
UIApplicationShortcutIcon *icon3 = [UIApplicationShortcutIcon iconWithTemplateImageName:@"图片3"];
UIMutableApplicationShortcutItem *item1 = [[UIMutableApplicationShortcutItem alloc]initWithType:@"UITouchText.1" localizedTitle:@"足迹" localizedSubtitle:nil icon:icon1 userInfo:nil];
UIMutableApplicationShortcutItem *item2 = [[UIMutableApplicationShortcutItem alloc]initWithType:@"UITouchText.2" localizedTitle:@"发现" localizedSubtitle:nil icon:icon2 userInfo:nil];
UIMutableApplicationShortcutItem *item3 = [[UIMutableApplicationShortcutItem alloc]initWithType:@"UITouchText.3" localizedTitle:@"我" localizedSubtitle:nil icon:icon3 userInfo:nil];
NSArray *arr = @[item1, item2, item3];
[UIApplication sharedApplication].shortcutItems = arr;
}
2.当我们通过标签进入app时,就会在appDelegate中调用这样一个回调,我们可以获取shortcutItem的信息进行相关逻辑操作
- (void)application:(UIApplication *)application performActionForShortcutItem:(nonnull UIApplicationShortcutItem *)shortcutItem completionHandler:(nonnull void (^)(BOOL))completionHandler{
if ([shortcutItem.type isEqualToString:@"UITouchText.1"]) {
NSLog(@"编写跳转到的ViewController");
}else if ([shortcutItem.type isEqualToString:@"UITouchText.2"]){
}else if ([shortcutItem.type isEqualToString:@"UITouchText.3"]){
}
}
- ( BOOL )application:( UIApplication *)application didFinishLaunchingWithOptions:( NSDictionary *)launchOptions;
也需要进行一下判断,在launchOptions中有UIApplicationLaunchOptionsShortcutItemKey这样一个键,通过它,我们可以区别是否是从标签进入的app,如果是则处理结束逻辑后,返回NO,防止处理逻辑被反复回调。
几点注意:
1、快捷标签最多可以创建四个,包括静态的和动态的。
2、每个标签的题目和icon最多两行,多出的会用...省略
3DTouch简单实现相关推荐
- 详解3DTouch集成篇
欢迎大家一起交流 QQ群 139852091 本文主要讲解3DTouch各种场景下的集成,开发主屏幕应用icon上的快捷选项标签(Home Screen Quick Actions),静态设置 UIA ...
- 3DTouch的简单使用
北京时间2015年9月10日凌晨,Apple在美国旧金山比尔格拉汉姆公民大礼堂(Bill Graham Civic Auditorium)召开新品发布会.本次发布会带来了3D Touch技术. 本文主 ...
- 怎么让手机变成震动器_详解iPhone 手机标配的两种技术:线性马达和3Dtouch,有多好用?...
iPhone手机广受大家喜欢不是没有道理的,XR取消了3Dtouch引来众多玩家的不满,那么,iPhone手机有哪些让你感觉舒服的技术呢?今天机哥就先来说一说线性马达和3Dtouch. 我们在玩手机时 ...
- 3DTouch桌面快捷方式
3DTouch是iOS9,iPhone6s上新加的功能,之前只是一直有了解,但是由于设备的原因并没有很好的研究,后来购入一台6S所以就迫不及待的尝试了一下. 申明Quick Action有两种方式:静 ...
- iOS 3DTouch 开发
看了网上很多贴,但是感觉对于有些人来说太过婉转了,所以我就来个简单粗暴的 1,设置静态标签 首先要在info.plist 里面添加键值 UIApplicationShortcutItemType 这 ...
- iOS中3DTouch的使用
苹果是在iphone6s开始加入的3DTouch功能.也就是说是ios9开始加入的3DTouch.3DTouch也就是根据你手按压的力度大小来触发的.3DTouch具体有两种表现形式.第一种是在Lau ...
- Android吃鸡 3dtouch,绝地求生刺激战场3Dtouch怎么用 刺激战场3Dtouch吃鸡技巧详解
腾讯光子&PUBG联合出品,正版<绝地求生>手游!百人空投,荒岛求生!虚幻4引擎研发,次世代完美画质,重现端游视听感受:8000Mx8000M正版... 类型:飞行射击 大小:11 ...
- 苹果手机3D-Touch这个功能,其实是吃鸡神器!
苹果手机3D-Touch这个功能其实很实用,为什么大家觉得沒用呢?今天给大家分享一下它的原理和实用性. 2015年9月10号iPhone在6S的发布会上正式推出3D Touch .3D Touch此操 ...
- 3DTouch的分享
众所周知,苹果公司每年9月份都会发布一款新的iPhone设备,而每代的iPhone都会在硬件和技术上有所升级. 随着iPhone6S.iPhone6SPlus 的发布,一项新的技术也出现在世人的视野中 ...
最新文章
- 随机生成6位图片验证码
- 史上最全数据结构算法之递归系列学习,建议收藏!
- linux shell awk 中括号 方括号 分割 []
- 系统调用003 系统服务表
- 抢票 | AI未来说学术论坛第十期 视频理解与推荐专场
- java中把map转换成list
- java 1.5.0 gcj_CentOS安装JAVA后JAVA版本不对的问题
- shell:读取文件的每一行内容并输出
- e0312 不存在用户定义的_更加灵活的参数校验,Spring-boot自定义参数校验注解
- Hibernate Session和Jpa EntityManager
- vs 2012/2013 等工具中,使用正则表达式,查找、替换
- 深度学习:神经风格转移
- STM32第九课(Input Capture, HAL)
- 共享办公平台,提高整体使用率
- 网吧克隆——XP系统母盘制作全攻略
- 个人网站搭建之服务器环境搭建
- Java程序员日常开发提效工具(谷歌,Idea)-长期更新
- 如何把mac照片导入u盘_macbook air里的相片要怎么放到u盘里?
- 大学生如何奋斗5年从月薪3500到700万
- /prod-api/ 整合阿里云服务器 2020年12月13日 23:44:18(日记)
热门文章
- 如何在vue中优雅的使用ocx控件:结合iframe
- 事件日志中出现TKK: 更新 TKK 失败,请检查网络连接,翻译插件用不了
- TKK: 更新 TKK 失败,请检查网络连接(亲测有效)
- MNE初学入门(一)
- 工控物联网案例-如何利用LTE-658 4G DTU实现水文水利远程物联网监控
- Disconnected: No supported authentication methods available(server sent: publickey) 的解决办法
- 2018上半年爆款活动营销盘点
- fpga时序相关—set_input_delay和set_output_delay
- Java 标准输入输出流(System.in,System.out)使用
- 登录界面---油管大佬