iOS 支持3DTouch快捷菜单
简介
iOS从iPhone6s、iOS9加入了3D Touch功能,支持通过对屏幕施加不同程度的压力来访问快捷入口和附加功能,见下图。
3D Touch的使用场景
- 快捷菜单,快捷入口,快速访问程序的功能比如扫一扫、签到、我的订单
- 预览和弹出
快捷菜单的实现
支持两种方式添加快捷菜单
- 在项目的.plist 文件中添加
- 通过代码动态注册
可以在AppDelegate的启动方法里面初始化3DTouch菜单
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{//初始化3DTouchNSMutableArray *arrShortcutItem=[[NSMutableArray alloc] init]; UIApplicationShortcutItem *shortcutItemSearch=[[UIApplicationShortcutItem alloc] initWithType:@"test.search" localizedTitle:@"搜索" localizedSubtitle:nil icon:[UIApplicationShortcutIcon iconWithTemplateImageName:@"icon_shortcut_search.png"]userInfo:nil];[arrShortcutItem addObject:shortcutItemSearch];[UIApplication sharedApplication].shortcutItems=arrShortcutItem;
}
响应菜单点击事件
重写AppDelegate里的performActionForShortcutItem方法来响应点击
-(void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler
{if([shortcutItem.type isEqualToString:@"test.search"]){//跳转到搜索页面NSLog(@"跳转到搜索");}
}
适配低版本系统和设备
如果你认为通过以上两种方式添加完快捷菜单就完成了工作,那就too young了,接下来还要考虑 适配的问题。因为这东西是从6s、iOS9才出现的。如果你是通过第一种方式 在项目的.plist文件中添加的快捷菜单,那恭喜你你不需要考虑适配问题,因为这种方式苹果已经帮我适配好了,如果你是通过第二种代码动态添加的方式,那就要考虑适配,否则在低版本的系统iOS9以下会崩溃。
通过代码动态注册主要考虑
- 系统是否开启了3dtouch,没开启,就没必要添加菜单
- 设备和系统是否支持3DTOUCH,不支持也不要添加
代码如下
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{//forceTouchCapability 这个属性表示是否支持3DTouch 是iOS9才有的 调用之前要判断一下,有没有这个属性if ([self.window.rootViewController respondsToSelector:@selector(traitCollection)]&&[self.window.rootViewController.traitCollection respondsToSelector:@selector(forceTouchCapability)]){//判断是否支持3dtouchif(self.window.rootViewController.traitCollection.forceTouchCapability==UIForceTouchCapabilityAvailable){NSMutableArray *arrShortcutItem=[[NSMutableArray alloc] init];UIApplicationShortcutItem *shortcutItemSearch=[[UIApplicationShortcutItem alloc] initWithType:@"fumubang.search" localizedTitle:@"搜索" localizedSubtitle:nil icon:[UIApplicationShortcutIcon iconWithTemplateImageName:@"icon_shortcut_search.png"]userInfo:nil];[arrShortcutItem addObject:shortcutItemSearch];[UIApplication sharedApplication].shortcutItems=arrShortcutItem;}else{NSLog(@"不支持3dtouch");}}
}
其他
应用发布到应用商店,下载安装后,某个iOS版本的系统会默认给每个应用添加一个分享app的快捷菜单,所以我们不需要自己加分享app这个菜单,系统会自动附加。。。。
iOS 支持3DTouch快捷菜单相关推荐
- 【Delphi】Android 桌面图标添加快捷菜单功能
目录 一.为什么需要桌面图标长按快捷菜单 二.实现Android桌面图标快捷菜单 第一步:Delphi 创建一个 FMX 工程文件:ShortCut_Demo.dpr 第二步:编辑项目中的 Andro ...
- uniapp ios支持长按app 3D Touch快捷菜单项
uniapp ios支持长按app 3D Touch快捷菜单项 uniapp 安卓 长按app 快捷方式 shortcut 一.配置manifest.json文件 切换到代码视图,uni-app项目在 ...
- IOS开发(27)之UITableView的Cell显示长按快捷菜单
1 前言 对于UITableView的Cell长按,可以触发快捷菜单,包括复制,粘贴之类的操作. 2 代码实例 ZYViewController.h #import <UIKit/UIKit.h ...
- iOS开发 3D-touch使用
3D Touch的触控技术,被苹果称为新一代多点触控技术.3D Touch,苹果iPhone 6s的新功能,看起来类似 PC 上的右键.有Peek Pop 两种新手势.iOS 9提供了如下3D Tou ...
- 为ASP.NET控件加入快捷菜单
Cutting Edge:为ASP.NET控件加入快捷菜单 英文原文: Adding a Context Menu to ASP.NET Controls 作者:Dino Esposito 翻译: M ...
- IOS实现3DTouch功能
赶需求期间,想着别人应用都搞起3DTouch功能了,咱也来装逼一会,凸显下逼格. 废话少说,先搜索了前人的热心奉献,自己再动手丰衣足食,下面归纳总结下. 首先,想要体验3DTouch功能,必须至少得是 ...
- Android 桌面图标长按快捷菜单
为了更快使用APP的某个功能,在手机桌面长按图标呼出快捷菜单 需要注意:在7.0以上的系统才支持该功能 两种方案可以实现该功能,第一种静态文件,不过基本上满足不了日常需求.第二种就是动态加载. Sho ...
- iOS开发3DTouch(一)
一.3D Touch 的简单介绍 ①主屏幕的快捷操作: 在主屏幕按压app图标,有两种类型:静态操作(在info.plist中添加UIApplicationShortcutItems数组)和动态操作( ...
- c#快捷菜单contextMenuStrip的使用
1.首先是官方文档的解释 https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.forms.contextmenustrip?view= ...
最新文章
- 戴尔公司向SAP HANA明确示爱 发布全新系统设计方案
- Windows PE 重定位表编程(枚举重定位地址)
- python爬虫课件_Python爬虫教学视频(附课件)
- JavaWeb之Cookie
- 记一次node项目重构改进
- 单片机代码真值怎么取反c语言,手把手教你学单片机的C语言程序设计(八)运算符与表达式(续).pdf...
- matlab lbp特征,lbp特征(lbp纹理特征提取)
- python获取验证码失败_python 爬虫:验证码一直错误
- 如何批量将 Xls 格式的 Excel 文档转为 Xlsx 格式
- 爱企查爬虫selenium
- svn执行update操作后出现:Error : Previous operation has not finished; run 'cleanup' if it was interrupted.
- c语言中x的n次幂程序,请教c语言关于X的N次幂问题?
- 横扫13项中文NLP记录,中文字型深度学习模型Glyce问世!
- 设计模式“6”大原则!
- 【Visual C++】游戏开发五十六 浅墨DirectX教程二十三 打造游戏GUI界面(一)
- 企业打造顶级研究院的最优路径是什么?
- HTML+CSS制作七夕情人节求婚动画(520情人节程序员表白)
- 关于SQL反勾号或者叫飘号(``)
- 疯了疯了,安利一款非常好用的屏幕捕捉工具FSCapture
- 掌财社:马桶MT被山寨,聊天宝赚钱不如捡废品,多闪表现平平
热门文章
- 纽约州立石溪分校计算机科学排名,美国纽约州立大学石溪分校排名_2019纽约州立大学石溪分校排名(USNews排名)...
- fork函数产生进程
- 基于android手机实时监控ipcam视频之一:RTSP
- vue项目 情侣空间 纪念日功能模块
- ne_products 表
- Sqoop导入导出基本操作
- 服务器系统如何克隆,服务器如何克隆操作系统
- Linux下Moudle工具的介绍与使用
- 轻轻松松背单词软件测试,Englishfield词汇记忆与测试
- STM32CUBEMX 配置12脚3641BS以及串口显示RTC时间