根据UITouch 自定义手势

系统提供的手势和点击,很多时候都不能满足我们的需求,因此,我们就需要自己去写自己想要的点击或者是滑动的效果.

一下我们就来介绍一下,这篇我做的时模仿 阅读电子书的app

如上图所示,我们需要中间的点击弹出菜单(下面的黑色条框) 左边绿色和黄色点击切换上一页,右边的点击切换下一页,并且屏幕上的所有位置全部支持左划下一页,右划上一页的手势

我们根据我们的需求来重新定义我们的手势

核心思想就是 我们根据我们点击的开始位置,和手指离开屏幕的位置之间的坐标的变化,首先,如果开始和结束的坐标没有发生变化,那么我们就可以认定为是点击事件,如果坐标发生变化,那么就可以认为是滑动事件

1.首先创建UIView

2.设置两个属性,来记录点击的开始位置,和结束位置

3.设置开始触摸视图,和结束触摸视图时刻调用的方法

我们需要在此时记录点击的位置 startPoint

红色箭头指向的地方,是因为我们的工程用的是ARC, mrc情况下我们可以使用 [_target performSelector:_action];

ARC状态下 上面的这行代码就会抛出警告,所以我们使用下面的代码进行替代, 在替代的时候我们还要引入一个框架和定义宏

结束时调用的方法

在这里我们添加了 左划和右划 以及点击所触发的条件,到此,我们自定义的手势就结束了,当然我们可以依照这个来定义其他的我们需要的手势

4.调用

在调用的时候;我们怎么设置触发时关联的方法呢,

我们使用的是代理,但是由于我们在试图上面划分了5个区域,那么我们怎么来进行区分我们点击的是哪一个区域呢,在这里我选用的是一个最笨得方法,就是给每一个不同干的区域分别设置一个代理

4.1设置代理

遵循代理

其他的设置,就是细节的设置,基本上没有什么大坑.

 

 

 
 
posted @ 2015-03-09 14:57  NSJELLY  阅读(188)  评论(0编辑  收藏  举报