【问题标题】:Where to add event handlers在哪里添加事件处理程序
【发布时间】:2013-08-04 21:13:33
【问题描述】:

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

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

我应该将它们保存在layoutSubviews 中(随着时间的推移重复调用,因为滚动,不确定这对事件处理程序有什么作用,它们会被多次添加吗?),将其移动到initWithStyle (这个也不确定,我在这个方法中试过一个NSLog,但是一次都没调用),还是放到UITableViewController里面?

【问题讨论】:

    标签: ios uitableview


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-14
        • 1970-01-01
        • 1970-01-01
        • 2012-04-13
        • 2016-08-24
        相关资源
        最近更新 更多