美文网首页
ios之3D Touch开发指南

ios之3D Touch开发指南

作者: 陈贺 | 来源:发表于2016-11-14 09:03 被阅读0次

    ios9中3D Touch功能是一个新的亮点,这个方便快捷的功能实现也比较简单,废话不多说直接上代码,

    一.3D Touch功能添加分为两种(1).静态标签 (2).动态标签

    (1).静态添加

    这个方法是在app的plist文件中添加如下图的键值对,

    先添加了一个UIApplicationShortcutItems的数组,这个数组中添加的元素就是对应的静态标签,在每个标签中我们需要添加一些设置的键值:

    必填项(下面两个键值是必须设置的):

    UIApplicationShortcutItemType  这个键值设置一个快捷通道类型的字符串

    UIApplicationShortcutItemTitle  这个键值设置标签的标题

    选填项(下面这些键值不是必须设置的) :

    UIApplicationShortcutItemSubtitle  设置标签的副标题

    UIApplicationShortcutItemIconType  设置标签Icon类型

    UIApplicationShortcutItemIconFile  设置标签的Icon文件

    UIApplicationShortcutItemUserInfo  设置信息字典(用于传值)

    (2).动态标签

    动态标签是我们在程序运行过程中动态添加上去的,可以修改或者直接取消, 与之相关的类,主要有三个:

    UIApplicationShortcutItem  创建3DTouch标签的类

    UIMutableApplicationShortcutItem 创建可变的3DTouch标签的类

    UIApplicationShortcutIcon 创建标签中图片Icon的类

    接下来就是创建标签

    动态方法添加可以在某个条件下取消3D Touch功能,比如登陆之前取消3D Touch功能和登陆之后添加3D Touch功能,代码中的 UIApplicationShortcutIconTypeShare 等是系统风格的icon,这里只是举个例子直接拿来用,但是不知道审核的时候会不会被拒。

    这里有几点需要注意:

    1、快捷标签最多可以创建四个,包括静态的和动态的,静态标签会一直存在。

    2、每个标签的题目和icon最多两行,多出的会用...省略

    3、我们在app的入口函数:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;

    也需要进行一下判断,在launchOptions中有 UIApplicationLaunchOptionsShortcutItemKey这样一个键,通过它,我们可以区别是否是从标签进入的app,如果是则处理结束逻辑后,返回NO,防止处理逻辑被反复回调。

    二.响应标签的行为

    当我们点击标签进入应用程序时,也可以进行一些操作,我们可以看到,在applocation中增加了这样一个方法:

    - (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void(^)(BOOL succeeded))completionHandler NS_AVAILABLE_IOS(9_0); (要注意上面的第三点)

    当我们通过标签进入app时,就会在appdelegate中调用这样一个回调,我们可以获取shortcutItem的信息进行相关逻辑操作。

    三. 3D Touch ViewController  弹出自定义的ViewContoller,向上滑动还有下一步的菜单可以显示

    首先在viewController的.m方法中添加下面代码,判断当前设备是否支持压力感,并注册delegate

    添加你想要弹出来的viewcontroller,

    接下来在添加的视图中,添加向上滑显示的菜单,上面代码中YBS3DTouchViewController *childVC,视图中我就是简单定义了一个backView和一个label,下面是在-(NSArray< id> * )previewActionItems 函数中定义你要显示的菜单

    效果图如下:

    相关文章

      网友评论

          本文标题:ios之3D Touch开发指南

          本文链接:https://www.haomeiwen.com/subject/rzchpttx.html