2016笔记——3D Touch补充

今天还有额外的3D Touch收获呢~~

原以为3D Touch 技术仅限于应用的图标呢,结果发现并不是我想的那样简单呢。

在视图控制器中使用3D Touch需要做一个判断,也就是要区分长按手势与3D Touch的区别。

首先定义一个全局变量,_longPress,然后初始化:

屏幕快照 2016-02-01 13.12.33.png

不用去关心longPressDo这个方法我们做了什么,一个空的方法而已,我们只是为了将longPress手势拿出来做区别而已。

然后我在屏幕中间位置,垂直依次摆开三张图片。

接下来是进行3D Touch的环境监测(硬件是否支持,长按手势要不要响应事件):

屏幕快照 2016-02-01 13.13.03.png

然后就是3D Touch的响应事件了(完整版):

屏幕快照 2016-02-01 13.13.27.png

看起来是不是有点复杂?删繁就简的话,应该就是这样:

屏幕快照 2016-02-01 13.19.26.png

这里的WQLViewController是一个简单的继承于UIViewController的自定义的视图控制器而已。

完整版的响应事件,是做了数据源的判断,实现了展示数据与重按数据的一致性。

此外,不得不提的一点是:对于界面是TableView的时候,我们可以如下操作

location = [self.view convertPoint:location toView:_tableView];

NSIndexPath *indexPath = [_tableView indexPathForRowAtPoint:location];

此外,我们还可以再多做点什么,我们可以再在展示的界面中,添加一个底部的弹框。

我们去WQLViewController中,重写这么个方法:

屏幕快照 2016-02-01 13.13.50.png

这样我们就可以看到底部的操作弹框了。

好了,话不多说,看效果:

主界面是这样的:

屏幕快照 2016-02-01 13.30.02.png

(其实底部还有很大一片空白,被我截图时舍其了)

重按时的效果是这样的:

屏幕快照 2016-02-01 13.30.45.png

看到图片顶部的白色箭头了吗?

向上滑动一下的效果为:

屏幕快照 2016-02-01 13.31.25.png

终于看到我们在WQLViewController写的数组了。
加油~

你可能感兴趣的:(2016笔记——3D Touch补充)