作者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/m.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