2012-04-15 68 views
0

我子類UITableViewCell和裏面的類我已經添加了UITapGestureRecognizer(其觸發稱爲animateCell的方法)到contentViewUITapGestureRecognizer抵消didSelectRowAtIndexPath方法中的UITableViewController

我在做什麼:當用戶點擊一個單元時,animateCell被調用(可以工作),但我也想要didSelectRowAtIndexPath被調用,這樣我就可以從表的源數組中添加選定的對象另一個陣列。

我注意到的是,UITapGestureRecognizer取消了didSelectRowAtIndexPath。我有兩種方法可以同時使用嗎?

+1

爲什麼你需要使用一個子類?爲什麼你不能從'didSelectRowAtIndexPath'動畫單元? – edc1591 2012-04-15 17:58:06

+0

這很容易,因爲我有很多額外的表視圖控制器,我推入堆棧(導航控制器)的堆棧中,每個人都需要能夠執行相同的動畫。我還是比較新的,所以如果你有建議,請說。 – sooper 2012-04-15 18:00:07

回答

1

這是一種駭人聽聞的,但你可以嘗試在你的UITableViewCell子類中創建一個屬性,該屬性持有指向你的UITableViewController的指針。然後從你的手勢識別器,你可以做這樣的事情:

NSIndexPath *indexPath = [self.tableViewController.tableView indexPathForCell:self]; 
[self.tableViewController tableView:self.tableViewController.tableView didSelectRowAtIndexPath:indexPath]; 
+0

這是一個整潔的想法。我試過了,但是我在第二行發現錯誤'-didSelectRowAtIndexPath:not found' – sooper 2012-04-15 18:20:35

+0

oops,已修復。現在試試 – edc1591 2012-04-15 18:37:16

+0

這個解決方案非常棒。只是一個問題:性能明智,哪個更好?要實現上述解決方案,還是要在'didSelectRowAtIndexPath'中執行動畫(即使它有更多的工作)? – sooper 2012-04-15 18:43:56

相關問題