0

什麼是編碼檢測UITableView上的「快速觸摸」,以切換到全屏或從全屏切換?如何檢測UITableView上的「快速觸摸」以切換到全屏或從全屏切換?

特別是,這是因爲用戶在UITableView上,他們仍然需要能夠上/下拖動項目列表,並可能點擊單元格/行來深入挖掘。但是,如果它們很快觸及,那麼這可能是在全屏模式(即導航欄&工具欄)之間切換的觸發。

背景 - 當我說切換到/從全屏我指的是執行什麼是described here,但在這個答案中沒有提及如何將其插入到UITableView的回調中顯示在UINavigationController堆棧中。

回答

0

想把了這個作爲一個可能的答案,答案是沒有相對直接的方式來實現我問過這一點。這是一種在UITableView頁面中檢測輕拍或雙擊的方法,該頁面已經在拾取行觸摸並向上/向下滾動等。

尚未驗證是否是這種情況,但是如果他們認爲這是真的,人們可以對這個答案進行投票。 (也等待來自ypk的樣本誰可能有答案)

1

下面的代碼可以幫助你

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    timeStampStart = event.timestamp; 
} 

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    timeStampEnd = event.timestamp; 
    touchDuration = timeStampEnd - timeStampStart; 

    if(touchDuration > smallTimeStamp) 
     [super touchesEnded:touches withEvent:event]; 
    else 
     [self zoomMyTableView]; 
} 
+0

謝謝ypk - 請問這是如何適應在表中正常選擇的行,或滾動表,或深入細胞的細節?觸摸你突出顯示的優先順序?如果是的話,還有什麼需要做的,以確保觸摸不是一個很短的,其他情況下仍然會繼續好嗎?再次感謝 – Greg 2011-03-25 10:32:07

+0

我缺少的另一件事是,你需要在'toucesBegan'中添加'[super touchesBegan:touches withEvent:event];''。你需要在你的'UITableView'子類中實現這些。通過這個靜態表視圖滾動,選擇將起作用,因爲當觸摸時間戳大於最小值時,我們將觸摸事件發送到「超級」。 – YPK 2011-03-25 20:19:18

+0

實際上這對我不起作用 - 我正在使用模擬器進行測試 - 我無法點擊tableview中的行上的模擬器並獲取任何這些方法來觸發?所以我在UINavigationController中有一個UITableView,而表本身是基於子類/自定義的UITableViewCell – Greg 2011-03-25 21:02:44