2009-05-31 20 views
5

我在自定義表格控件中實現滑動手勢,所以我要實現touchesBegan事件。 我可以實現滑動,但不幸的是,因爲touchesBegan在customcell中處理,我沒有在tablecontroller上得到didSelectRowAtIndexPath消息。如果touchesBegan方法被禁用,它將起作用。在UITableViewCell中處理touchesBegan禁用didSelectRowAtIndexPath

這應該如何處理? touchesBegan處理完成後,我希望觸摸事件能夠使響應者鏈上升。我怎樣才能做到這一點?

謝謝。

回答

12

我「敢肯定,你可以看到這種情況的發生,因爲你將覆蓋先前在超類中定義的方法。而且通過這樣做意味着該事件不會被調用。

你嘗試調用[超級的touchesBegan]?這樣所有的上游材料的處理方式。你可以覆蓋滑動手勢。

或另一種選擇是調用委託時,在自己的觸摸方法檢測到觸摸。

東西像(你可能也會實現其他觸摸事件)

-(void) touchesBegan 
{ 
//logic to detect tap only. 
[tablecell.delegate didSelectRowAtIndexPath:(some way to determin touched row)] 
} 
+6

[super touchesbegan]可能是正確的做法。 – amattn 2009-05-31 19:15:21

相關問題