作者yavis (yavis)
看板MacDev
标题[问题] pan手势问题
时间Mon Aug 24 14:40:44 2015
专案上写了pan手势,
往上与右滑判定为数字递增,
往左与往下滑则为数字递减,
但现在遇到两个问题是,
问题1.
当滑动完得到想要的数字後例如100,
手指一离开萤幕数字会变101或102,
没办法准确得到想要的数值
问题2.
上下滑动的数值没办法精准的递增或递减
例如向上滑动数值会在100 - 110打转一阵子才继续往上递增
以下是我的程式码:
http://pastebin.com/d3cCn6gi
想请问版上前辈这两个小问题要如何解决呢? 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.248.56.185
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MacDev/M.1440398447.A.E8F.html
1F:推 sinss: GestureRecognizer 有几个State可能要判断一下。 08/24 15:58
2F:→ sinss: Begin, Chagned, End ... 08/24 15:59
3F:→ howdiun: 用位置取代速度,要精准的话位置跟数值的比例要大一点 08/24 16:26
4F:→ howdiun: 另外先检查x再检查y基本上y几乎没有作用,因为x很难为0 08/24 16:26
5F:→ howdiun: 如果比例无法增加,那就给他两个按钮按一下加减一 08/24 16:32
6F:→ yavis: 请问如果用switch取代if elseif的话会不会比较精准呢? 08/24 17:44
7F:→ howdiun: 使用translationInView取代velocityInView 08/24 18:11
※ 编辑: yavis (60.248.56.185), 08/25/2015 17:19:04
8F:→ yavis: 我使用了translationInView会发生一个问题,如果手势向右拖 08/25 17:21
9F:→ yavis: 曳,数字会正常递增,在手指不放开情况下改往左边拖曳, 08/25 17:22
10F:→ yavis: 数字还是会继续递增,似乎没有比velocityInView来的理想 08/25 17:24
11F:→ howdiun: 你要把第一次按下的点记起来,然後跟trainslation相减 08/26 10:55
12F:→ howdiun: 说错了,是把初始的num记起来,然後根据translate改变 08/26 10:57
13F:→ howdiun: num=oriNum+translate; 08/26 10:58
14F:→ howdiun: num=oriNum+translate/gap; gap代表多少像素要加减1 08/26 10:59
15F:→ howdiun: 如果要同时上下左右,应该要先判断x与y的绝对值哪个大 08/26 11:00
16F:→ howdiun: 然後使用较大的那个当translate 08/26 11:00