美文网首页
3D Touch 功能

3D Touch 功能

作者: 我消失1314 | 来源:发表于2017-04-25 15:31 被阅读37次

一.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

//注册3D Touch,先判断是否可用

if (self.traitCollection.forceTouchCapability == UIForceTouchCapabilityAvailable){

[self registerForPreviewingWithDelegate:self sourceView:self.view];

NSLog(@"3D Touch  可用!");

}else{

NSLog(@"3D Touch 无效");

}

UIApplicationShortcutItemIconType触发3D Touch时显示的图标类型

UIApplicationShortcutIconTypeShare显示分享的图标

当然肯定还可以选择其他的一些图标,在此不一一列举,因为我也才上手,不怕您笑话咱。

UIApplicationShortcutItemTitle显示名字的

UIApplicationShortcutItemType相当于项目中的Bundle Identifier唯一的,通过这个标示我们可以判断点相应的那一项触发相应的操作

3DTouch目前在手机上有两种体现方式,一种是用力按下app的图片icon,会弹出选项菜单,就像电脑上的右键。一种是在应用内的界面上用力按下,弹出的预览界面

在iOS 9中,新iPhone将第三维度添加到了用户界面。

用户现在可以用力摁下主屏按钮来快速调出应用提供的功能菜单。

在应用中,用户现在可以用力摁下视图以查看更多内容的预览并且快速访问一些功能。

参考

1.iOS 9 新特性之实现 3D Touch 就是 So easy -- OC版

2.ios 3D Touch功能的实现

3.iOS9新特性 3DTouch 开发教程全解(含源码)

4.IOS实现3DTouch功能

5.【文档】在iPhone上使用3D Touch

6.iOS9 3D touch 适配开发

7.iOS9系列专题一——3D Touch

8.UIApplicationShortcutItems 官方文档翻译

9.[iOS]iOS9 3DTouch、ShortcutItem、Peek And Pop技术一览

相关文章

  • 关于3D Touch 的基本使用

    我对于3d touch 这个功能也没有什么研究,只是项目里面要求实现一个简单的touch 功能! touch AP...

  • ios 3D Touch运用

    概述:iOS9中引入3D Touch功能,iOS10中对其使用需求更频繁,,所以对3D Touch功能做一些了解是...

  • #3DTouch

    3D touch介绍 3D touch 是ios9+、iphone6s+的新功能,简单的说3Dtouch就是用力按...

  • iPhone 7的这几个小功能你知道吗?

    3D Touch你到底会不会用?千万不要浪费这个完美的功能! 1、iPhone动态锁屏壁纸 通过3D Touch功...

  • iPhone 6s使用经验

    怎么删除软件 怎么快速拍照 3d touch功能 怎样下载软件

  • iOS 3D Touch 开发

    1 3D Touch 的三大模块 在我们的app中使用3D Touch功能,主要分一下三个模块: 1.1 Home...

  • iOS-3DTouch学习一:添加主屏快速操作(Add Home

    1 概述 3D Touch,是在iOS9.0之后推出的一项快速访问应用功能的一项技术。在支持3D Touch的设备...

  • iOS 3D Touch打开控制器(类似微信聊天样式)

    使用过iPhone6s以上机型的同学们肯定使用过3D Touch的功能,随之而来的就是各种3D Touch的相关应...

  • 3D Touch 功能

    一.3D Touch功能添加分为两种(1).静态标签 (2).动态标签 (1).静态添加 这个方法是在app的pl...

  • 3D Touch功能

    一、功能介绍: 开发环境及调试设备:Xcode7或以上,iOS9或以上,iPhone6s或以上3DTouch功能主...

网友评论

      本文标题:3D Touch 功能

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