2010-10-13 45 views
2

注意:這是我昨天問的a question的擴展(並進行了說明)。如何在iPhone應用程序中記錄所有用戶的觸摸

我正在進行一項研究項目,我想在iPhone應用程序中記錄所有用戶的觸摸。實驗後,我將能夠下載數據並在Excel或(更可能)Matlab中處理它,並確定他們點擊某些按鈕的次數,點擊某些按鈕的次數等。爲此,我需要要知道:

一)當他們感動

b)如果他們感動

c)在查看他們感動

前兩個是容易的,但第三個我有麻煩。我知道我能做到這一點得到被觸摸的參考的UIView:

CGPoint locationPoint = [[touches anyObject] locationInView:self]; 
UIView* viewYouWishToObtain = [self hitTest:locationPoint withEvent:event]; 

不過,這只是給我一個指針的觀點,被觸摸的視圖的不是名稱。我可以爲每個視圖分配一個標記,但每次創建一個新視圖時,都需要記住標記它(或者,在初始化時記錄每個視圖的地址並在視圖被觸摸時記錄)。子類化UIView並添加一個自動標籤並不是一個真正的選擇,因爲我創建了其他UIButtons和UISliders,並且需要將這些子類化,這似乎不是一個很好的解決方案。

有沒有人知道一個乾淨,簡單的方法來做到這一點?

回答

1

對於「他們碰到哪個視圖」,您需要哪些信息?

也許你可以使用一個類別來添加一個方法到UIView。此方法將生成一個包含有關視圖信息的字符串。如:

  • 其類型例如的UIButton等
  • 其大小和位置
  • 視圖的標題,如果它有一個(例如按鈕標題)
  • 父視圖類型和標題
  • 其它東西例如是啓用的視圖,它處於什麼狀態。您喜歡什麼。

例如:「Type:UIButton Title:」Back「React:{3,5,40,25}」「或一些這樣的字符串。

這是非常乾淨,給你很多信息。

0

我不知道你在視圖的「名稱」的意思。如果你的意思是Interface Builder中的視圖名稱,我不相信它包含在實例化的對象中。您可以使用包含的標籤屬性,但這只是一個數字而不是名稱。

相關問題