看板 MacDev 關於我們 聯絡資訊
專案上寫了pan手勢, 往上與右滑判定為數字遞增, 往左與往下滑則為數字遞減, 但現在遇到兩個問題是, 問題1. 當滑動完得到想要的數字後例如100, 手指一離開螢幕數字會變101或102, 沒辦法準確得到想要的數值 問題2. 上下滑動的數值沒辦法精準的遞增或遞減 例如向上滑動數值會在100 - 110打轉一陣子才繼續往上遞增 以下是我的程式碼: http://pastebin.com/d3cCn6gi 想請問版上前輩這兩個小問題要如何解決呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.248.56.185 ※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1440398447.A.E8F.html
sinss: GestureRecognizer 有幾個State可能要判斷一下。 08/24 15:58
sinss: Begin, Chagned, End ... 08/24 15:59
howdiun: 用位置取代速度,要精準的話位置跟數值的比例要大一點 08/24 16:26
howdiun: 另外先檢查x再檢查y基本上y幾乎沒有作用,因為x很難為0 08/24 16:26
howdiun: 如果比例無法增加,那就給他兩個按鈕按一下加減一 08/24 16:32
yavis: 請問如果用switch取代if elseif的話會不會比較精準呢? 08/24 17:44
howdiun: 使用translationInView取代velocityInView 08/24 18:11
※ 編輯: yavis (60.248.56.185), 08/25/2015 17:19:04
yavis: 我使用了translationInView會發生一個問題,如果手勢向右拖 08/25 17:21
yavis: 曳,數字會正常遞增,在手指不放開情況下改往左邊拖曳, 08/25 17:22
yavis: 數字還是會繼續遞增,似乎沒有比velocityInView來的理想 08/25 17:24
howdiun: 你要把第一次按下的點記起來,然後跟trainslation相減 08/26 10:55
howdiun: 說錯了,是把初始的num記起來,然後根據translate改變 08/26 10:57
howdiun: num=oriNum+translate; 08/26 10:58
howdiun: num=oriNum+translate/gap; gap代表多少像素要加減1 08/26 10:59
howdiun: 如果要同時上下左右,應該要先判斷x與y的絕對值哪個大 08/26 11:00
howdiun: 然後使用較大的那個當translate 08/26 11:00