iOS9上实现3D Touch功能之快速启动

实现3D Touch快速启动功能有两种方式,一种是静态标签,一种是动态标签。


1、静态标签的实现

静态标签的实现是直接在plist文件中配置相关参数就能实现了。

iOS9上实现3D Touch功能之快速启动_第1张图片

UIApplicationShortcutItems数组是快速启动项的集合,有几个子项就有多少个快速启动项(不超过四个)

UIApplicationShortcutItemType是设置启动项的标识

UIApplicationShortcutItemTitle是设置快速启动项的名称

UIApplicationShortcutItemIconType是用于设置icon


2、动态标签的实现

动态标签的实现就是用纯代码实现。


finishLaunchingWithOptions代理中设置快速启动项。

UIApplicationShortcutIcon初始化快速启动项的icon,在使用自定义的icon时,请参考https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/3DTouch.html#//apple_ref/doc/uid/TP40006556-CH71-SW1。icon的标准是70 * 70@2x,104*104 @3x

UIApplicationShortcutItem是启动项的一个实例,用initWithType:localizedTitle:localizedSutitle:icon:userInfo实现。参数分别表示标识、标题、副标题和icon。

初始化启动项后,将其加入到UIApplication中的shortcutItems数组中。


3D Touch快速启动在appDelegate中有一个必须实现的代理:


- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completHandler:(void (^)(BOOL))completionHandler{}


在3D Touch快速启动的代理中比较UIApplicationShortcutItem的type属性与启动项的标识,进而进行相关的处理。


iOS9上实现3D Touch功能之快速启动_第2张图片

在launchingWithOptions代理中需要对是否从快速启动项启动程序进行判断,在launchOptions有个UIApplicationLaunchOptionsShortcutItemKey关键字可以判断程序是否从快速启动项启动的。([launchOptions objectForKeyedSubscript:UIApplicationLaunchOptionsShortcutItemKey] != nil)如果程序是从快速启动项启动的,则return NO用来阻止performActionForShortcutItem:completionHandler代理的运行,直接进行快速启动项的逻辑处理。


这是效果图iOS9上实现3D Touch功能之快速启动_第3张图片

此功能只支持6S机型及以上。


你可能感兴趣的:(iOS9上实现3D Touch功能之快速启动)