3DTouch到底是个什么梗?

简介:3D Touch的触控技术,被苹果称为新一代多点触控技术。其实,就是此前在Apple Watch上采用的Force Touch,屏幕可感应不同的感压力度触控。3D Touch,苹果iPhone 6s的新功能,看起来类似 PC 上的右键。有Peek Pop 两种新手势。2015年9月10日,苹果在新品发布会上宣布了3D-Touch功能。

介绍呢就不多说了,用过6s以上版本iPhone的小伙伴都了解,但是目前这项技术在苹果手机中的应用并不是特别广泛,目前支持3D Touch的APP也不是很多,作为一项苹果15年发布会重点强调的项目,这绝不能容忍,我相信3D Touch在苹果下次开发者大会上一定会爆出更多惊喜.

目前网上对Force Touch功能实现介绍的文章不是很多,而且有些杂乱,这篇文章中我将详细的给大家介绍如何在项目中添加3D Touch功能,下面的视频是最终结果:


3D Touch效果-高清观看-腾讯视频


看完效果就开始吧,首先先来实现第一个功能,用力按屏幕上的应用图标,弹出如图效果:

第一个是我们自己定义的,剩下三个都是系统提供的,这个模块很简单,分两步:1在info.plist文件中添加一个配置(数组).2在系统提供的一个方法中根据设定的标示截获用户点击的是哪一个选项.plist文件中配置如下:

配置完成之后,回到AppDelegate.m中实现一个系统自带的方法

运行程序,用力按突变,再选择打折(自定义)就会打开tableview页面如下图所示:

然后我们来实现cell对3D Touch的支持,即用力点cell弹出一个视图,再继续用力,进入这个视图..这需要借助几个代理方法,我们在SecondViewController
(tableview界面)签订一个协议UIViewControllerPreviewingDelegate,并在viewDidLoad注册3D Touch

然后实现几个代理方法,每个代理方法负责不同的工作

在这里不要忘了,在tableview代理方法中,给每一个cell注册3D Touch事件

写到这里运行之后用力压cell就能达到如图的效果,再按一下会整个进入黄色的页面.

出现这个页面之后不再用力按压,而是往上拖动,下面应该出出现一个菜单,如下图,我们再来实现这个功能,这个功能也是借助UIViewControllerPreviewingDelegate中的一个代理方法,当然这个代理方法要在这个黄色的页面中实现,即另外一个控制器我这里就是TouchShowViewController

好,现在我们来到TouchShowViewController.m中,先签订一个协议UIViewControllerPreviewingDelegate
然后实现方法-(NSArray> *)previewActionItems代码如下

代码很简单易懂,点击每一个选项,就会执行与其对应的block.想做什么操作写在里面即可.好了暂时就是这么多,希望对大家有所帮助,再就是期待下次WWDC大会苹果对3D Touch
进一步拓展吧.O(∩_∩)O哈哈~

推荐阅读更多精彩内容

  • 姓名:沈丹萍 公司:宁波大发化纤有限公司 《六项精进》289期学员 组名:反省二组 【日精进打卡第14天】 【知...
    好运到来阅读 76评论 0 0
  • Hello world~
    来自星星上的土豆阅读 75评论 0 0
  • 我们的身体里,有不止一个“自我”。 执行力就是完成目标的操作能力,每个人的执行力有强有弱。这表明是一种对自我的认知...
    得罗巴007_592阅读 391评论 4 19
  • 一直以来都有制作日程表的习惯,一是理清头绪,二是让时间更高效。每次想要重新拟定日程表的时候,都是焦头烂额,待办事项...
    静静地简书阅读 131评论 0 0