2012-05-07 44 views
-1

據我所知,沒有公共API以採樣率收集觸摸點/位置。有誰知道任何解決方法來完成此?非常感謝您提供任何想法和建議。收集觸摸點

+3

API ** DOES **存在以收集發生的每一次觸摸。你可以使用' - (void)touchesBegan',' - (void)touchesMoved'和' - (void)touchesEnded'來知道你所需要的。你還想找什麼? – mbm29414

+0

我的意思是「以採樣率」,而不僅僅是採集觸摸點。我如何以給定的採樣率來採集它們? – HappyAppDeveloper

+2

我明白你的意思了,但是當你發現***時,你會得到*** ***的所有***。如果他們沒有移動,爲什麼要繼續抽樣?如果他們***正在移動,那麼您會收到通知,並且您可以在該時間取得時間戳。我還是不明白'UITouch'類沒有提供什麼。 – mbm29414

回答

3

是不是​​是你在找什麼?

+0

我知道UITouch和方法touchesBegan,touchesMoved,touchesEnded。但是,我想在這裏完成的是以特定的採樣率收集觸點。 – HappyAppDeveloper

+1

當您註冊觸摸時,請檢查NSDate,並從中找出它是否在採樣率的範圍內。我認爲設置一個計時器是矯枉過正的,因爲無論用戶是否觸摸它都會運行。 – runmad

0

嘗試使用的NSTimer:

NSTimer* myTimer = [NSTimer scheduledTimerWithTimeInterval:1.0/TIMES_PER_SECOND target:self selector:@selector(sampleTouches:) userInfo:nil repeats:YES]; 

然後,實現回調函數:

-(void)sampleTouches:(NSTimer*)timer { 
    // Call a method/function here that gets UITouch data. 
} 
+0

感謝您的回覆!據我所知,我需要訪問處理這個回調函數中的觸摸事件的UIEvent對象。如何將觸摸事件與此回調聯繫起來?我還需要實現 - (void)touchesBegan:(NSSet *)觸及事件:(UIEvent *)事件 – HappyAppDeveloper

+0

2件事情:1)他的'NSTimer'對象設置不正確。你想要'1.0/TIMES_PER_SECOND'。 2)簡單地設置一個'NSTimer'不會給你任何額外的'UITouch'對象。你真的想處理'UITouch'事件。這種方式不是一個好的解決方案。 – mbm29414

+0

@ mbm30075 1)你絕對正確。我通常只是將它們實現爲每秒運行一次,所以我只是在那裏使用1.0。對不起,混淆了。 2)這就是爲什麼我把評論放在那裏解釋寫一個單獨的方法來獲取當前的UITouch狀態。我認爲需要回答的是HappyAppDeveloper試圖做的事情,具體來說,這需要在指定的時間間隔內進行觸摸輪詢。 – C0deH4cker

0

事實證明,在採樣率錄音觸摸點不作記錄任何更快或更準確。觸摸方法是要走的路。通過實施touchesBegan,touchesMoved,touchesEnd方法,我能夠記錄視圖發生時的觸點並儘可能快地記錄。