点击UITableViewCell的子视图时引发选择事件(didSelectRowAtIndexPath)

时间:2011-06-21 03:27:07

标签: iphone objective-c cocoa-touch uitableview

我创建了一个包含许多子视图的自定义UITableViewCell。在大多数情况下,我希望UITableViewCell的控制器处理事件。在一种情况下,我希望子视图简单地将事件传递给父UITableViewCell,这将导致它在指定的委托上调用didSelectRowAtIndexPath。

换句话说:我希望子视图变为“事件透明” - 我希望事件通过它传递并注册到底层单元格。

有什么建议吗?在其他语言中,我会提出一个事件。 Objective-C和Cocoa的新手还没有得到答案。

提前致谢。

2 个答案:

答案 0 :(得分:14)

尝试将视图的userInteractionEnabled属性设置为NO

这将使其忽略所有触摸事件,然后其下的视图将能够捕获这些事件。

答案 1 :(得分:0)

我想到了几种方式:

我认为“举办活动”的翻译是发送通知,在这种情况下,您可以查看NSNotificationNSNotificationCenter。很简单。

或者,您可以向每个单元格添加对UITableViewDelegate协议后面的对象的引用,并在创建单元格时,将该引用分配给您要处理该事件的对象,当子视图为点按,将didSelectRowAtIndexPath消息发送到该引用。

我个人会选择第二个,因为我不喜欢通知。