用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 的几个注意点的主要内容,如果未能解决你的问题,请参考以下文章
使用 UIPanGestureRecognizer 获取视图的翻译 - 快速 - 以编程方式
使用gestureRecognizer时两个手势识别器之间的顺序:shouldRecognizeSimultaneouslyWithGestureRecognizer: