2011-06-21 69 views
3

我創建了一個包含多個子視圖的自定義UITableViewCell。在大多數情況下,我想要UITableViewCell的控制器來處理事件。在一種情況下,我希望子視圖將事件簡單地傳遞給父UITableViewCell,這將導致它調用指定委託上的didSelectRowAtIndexPath。換句話說:我希望子視圖變成「事件透明」 - 我希望事件通過/通過它並註冊底層單元格。當點擊UITableViewCell的子視圖時提升選擇事件(didSelectRowAtIndexPath)

有什麼建議嗎?在其他語言中,我會提出一個事件。 Objective-C和Cocoa的新手還沒有能夠谷歌的答案呢。

在此先感謝。

回答

14

嘗試將您的視圖的userInteractionEnabled屬性設置爲NO

這將使其忽略所有觸摸事件,然後它下面的視圖將能夠捕獲這些事件。

+1

Doh!太容易了。謝謝! – ssokol

0

幾種方法來我的腦海:

相信譯名爲「觸發事件」會發送通知,在這種情況下,你可以看看NSNotificationNSNotificationCenter。很簡單。

(可選)您可以添加對每個單元格遵循UITableViewDelegate協議的對象的引用,並且在創建單元格時,將該引用分配給要處理該事件的對象,當點擊子視圖時,發送該參考文件的didSelectRowAtIndexPath消息。

就我個人而言,我會選擇第二個,因爲我不是通知的粉絲。

相關問題