用Swift GestureRecognizer 的几个注意点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Swift GestureRecognizer 的几个注意点相关的知识,希望对你有一定的参考价值。

最近做了一些关于 GestureRecognizer 的工作 ,随笔记录一些需要注意的点:

 

1. PanGestureRecognizer  

(1)在使用时 注意在哪个view添加了 手势识别 

self.view.addGestureRecognizer(panRecognizer)

不然会出现一些 不必要的识别操作和响应

 

(2)如果想 把手势控制做成 slider : 

 注意点:

I.  state :这里是自带的state有三个 began , changed , ended 

  在began的时候存入 起始点的数据 ,这个点需要是个全局变量,如果是在began方法里设置了变量, 其他两个state的方法是取不到的。(

startPanLocation = sender.locationInView(self.newEffectView)

  当changed的时候就存入变更点的数据 (

let changeLocation = sender.locationInView(self.newEffectView)

  当然ended的时候 也可以存入你需要的其他信息

II.  变量转换问题 CGFloat, 如果想变成其他的数字类型, 先转成Float类型 在进行转换 不然得到的效果一般情况下 和你想要的不一样

III. 要设定 endPoint - startPoint > 一个数据 ,不然识别度太高 会跟button的点按有效冲突

2. swipeGesture 

(1)right 和 left , 如果不声明 默认是向右的 

(2)swipeGesture 没有可以state 所以不能做成slider

 

以上是关于用Swift GestureRecognizer 的几个注意点的主要内容,如果未能解决你的问题,请参考以下文章

单元格中的 swift GestureRecognizer

在swift中使用类类型变量作为函数参数[重复]

使用 UIPanGestureRecognizer 获取视图的翻译 - 快速 - 以编程方式

使用gestureRecognizer时两个手势识别器之间的顺序:shouldRecognizeSimultaneouslyWithGestureRecognizer:

Swift - 导航控制器没有杀死视图控制器实例

检查哪个视图发送gestureRecognizer