您的位置:首页 > 移动开发 > IOS开发

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

2016-03-02 15:57 555 查看
实现3D Touch快速启动功能有两种方式,一种是静态标签,一种是动态标签。

1、静态标签的实现

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



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属性与启动项的标识,进而进行相关的处理。



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

这是效果图


此功能只支持6S机型及以上。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: