【问题标题】:Set target/action of a UITableViewCell subview inside the UITableViewController, without a storyboard在 UITableViewController 内设置 UITableViewCell 子视图的目标/动作,没有情节提要
【发布时间】:2013-11-29 08:59:30
【问题描述】:

使用情节提要,您可以通过- (IBAction)handle:(id)sender;直接在表格控制器中轻松自定义带有子视图的单元格并插入这些子视图的操作
但是是否可以在没有情节提要的情况下做类似的事情或笔尖?
我有一个自定义单元格和一个自定义表格控制器。

  • 我无法在单元实现中插入操作,因为它应该触发来自控制器的内容。
  • 我可以在控制器中使用 UIGesture,地址为tableView:cellForRowAtIndexPath:,但每次调用它时,它都会为单元格插入一个手势。当然,我可以做到这一点……

所以我想知道是否有一种“简单”的方式来实现表格控制器内部单元格子视图的动作,比如 IBAction,没有情节提要或笔尖? 谢谢。 B.R.

【问题讨论】:

    标签: storyboard uitableview target-action


    【解决方案1】:

    如果您已经有一个自定义的 tableViewCell,您可以将UITapGestureRecognizer 添加到该视图。

    您必须创建UITableViewCell 的子类并实现- awakeFromNib 方法。在那里,您可以将手势识别器添加到单元格内的视图中。

    这不是一个完整的解决方案,但它可能是一个很好的起点。

    【讨论】:

    • 问题是,我没有故事板或笔尖。我想以编程方式做所有事情。因此,如果我将 tap 实现放在自定义单元类中,我将无法从表控制器类中触发一些东西,例如:present a new controller...
    • 我建议使用单个 tableViewCell 创建一个 NIB 文件。你可以使用[UITableView registerNib:forReusableIdentifier:];。然后,当您使用 - dequeCellForReusaleIdentifier: 时,您的 NIB 将被加载和设置。在 NIB 中,您为单元制作原型,添加识别器并连接插座等。这是最佳做法。
    • 我刚刚又读了一遍,觉得可以补充一些信息。如果你真的不想使用 Nibs,你也可以注册你的自定义类并在类中以编程方式完成所有操作。然后,您为单元实现一个协议,并将您的控制器设置为- tableView:cellForRowAtIndexPath:中的单元的委托
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-11
    • 1970-01-01
    • 1970-01-01
    • 2017-02-03
    • 1970-01-01
    相关资源
    最近更新 更多