【iOS9系列】-3DTouch开发
【iOS9系列】-3DTouch开发
第一:简介
3DTouch 是iOS9系统系统下,在iPhone6s(iPhone6s Plus)手机上才能够使用的功能。熟练使用后,发现还是很便捷的。
但是模拟器是不支持这个手势的。只能在真机上进行测试,但是有大神在Github开源了一个插件,以便在模拟器上使用SBShortcutMenuSimulator,具体教程可以自行查看。
第二:3D Touch入门
2.1 基本类型
- 主屏幕快速选项(Home Screen Quick Action)
通过主屏幕的应用图标,可以通过3DTouch呼出快捷菜单,进行快速定位相关功能页面
-
Peek和Pop
-
Peek快速选项
2.2 3DTouch开发-创建
这里主要讲解的是主屏幕快速选项(Home Screen Quick Action)
,其他的稍后会进行补充
iOS9提供了两种主屏幕快速选项
的创建方式:1:静态标签
;2动态标签
- 静态标签
静态标签需要在项目的配置plist文件中进行配置,在用户安装程序后就可以使用,并且排序会在动态标签的前面。
以上plist文件的截图对应的效果如下
参数解释
Name | 解释 | 是否必须 |
---|---|---|
UIApplicationShortcutItemType | 设置类型字符串,点击后以便在程序中处理 | 是 |
UIApplicationShortcutItemTitle | centered | 是 |
UIApplicationShortcutItemSubtitle | 标签的副标题 | 否 |
UIApplicationShortcutItemIconType | (Icon类型)系统枚举值 | 否 |
UIApplicationShortcutItemIconFile | Icon文件 | 否 |
UIApplicationShortcutItemUserInfo | 字典信息(用于传值) | 否 |
- 动态标签
TODO
2.3 3DTouch开发-相应回调
iOS9以后在AppDelegate
增加了回调方法
-(void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler
{
}
我们可以在这里进行逻辑处理
可以通过shortcutItem.type
来获取UIApplicationShortcutItemType
类型,进而可以得知点击的菜单,进行逻辑代码的书写。
同时,在我们的App方法:didFinishLaunchingWithOptions
中我们可以取得UIApplicationShortcutItemType
的值
UIApplicationShortcutItem *item = [launchOptions valueForKey:UIApplicationLaunchOptionsShortcutItemKey];
item.type//取到的也是`UIApplicationShortcutItemType`的值
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
}
这样我们可以进行逻辑处理并在didFinishLaunchingWithOptions
返回NO,防止处理逻辑被反复回调。
项目源码,详见https://github.com/darren90/EasyNote - 这是我已经写好的完成的笔记记录的项目,欢迎Star关注。
参考:
-
【文档】在iPhone上使用3D Touch - Apple 3D Touch 开发API文档的中文版
作者:Darren
微博:@IT_攻城师
github:@Darren90
博客:http://www.cnblogs.com/fengtengfei/
欢迎您的访问...