2

似乎有多个地方可以为目标添加事件处理程序。目前,我有一个滑块,其中UITableViewCell有多种方法连接到控制事件UIControlEventValueChangedUIControlEventTouchUpInsideUIControlEventTouchUpOutside.

这些是当前添加到layoutSubviews方法中的,但我不确定这是否是正确的位置。我尝试将它们移动到 UITableViewController(就像我在tableView: cellForRowAtIndexPath:方法中添加它们一样),但现在我不确定添加这些东西的正确位置是什么。

我应该将它们保留在layoutSubviews(随着时间的推移重复调用,因为滚动,不确定这对事件处理程序有什么作用,它们是否被多次添加?),将其移动到initWithStyle(也不确定这个,我在这个方法中尝试了一个NSLog,但它甚至没有被调用一次),或者把它放在UITableViewController中?

4

2 回答 2

1

您应该在创建滑块时添加它们。如果滑块是在 XIB 中创建的,那么您也应该在那里添加连接,否则您将添加它,viewDidLoad或者,根据您的构造,awakeFromNib. 如果滑块是在代码中创建的,则在创建后立即添加它们。

于 2013-08-03T19:40:58.350 回答
1

layoutSubviews方法绝对不是正确的地方:它用于控制布局,而不是连接事件处理程序 - 更不用说多次连接同一个处理程序的可能性!

将事件添加到标准单元格的正确位置是tableView: cellForRowAtIndexPath:方法。对于使用 Interface Builder 绘制的自定义单元格,您应该能够直观地连接事件。

于 2013-08-03T19:44:47.687 回答