【问题标题】:How can i Get container UITableView in a cell of the TableView如何在 TableView 的单元格中获取容器 UITableView
【发布时间】:2016-07-30 19:17:39
【问题描述】:

有什么方法可以访问单元格中包含当前 UITableViewCell 的 UITableView 吗?

【问题讨论】:

    标签: iphone cocoa-touch uitableview


    【解决方案1】:

    您可以向上查看视图层次结构,直到找到 UITableView:

        UIView *v = self;
        while (v && ![v isKindOfClass:[UITableView class]]) v = v.superview;
        // v now holds the table view, or nil if there isn't one
    

    尽管您可能应该质疑为什么单元格需要戳表格视图,以及是否有更直接的方法来做到这一点。

    【讨论】:

    • 是的,它可以,[self superview] 效果一样,另一个问题,我怎样才能得到基础超级视图的视图控制器?
    • @Ron:如果未来版本的 iOS 将一些其他视图插入到表格视图和单元格之间的层次结构中,那么简单的 [self superview] 可能并不总是有效。您可以(通常)通过查看 nextResponder 是否返回 UIViewController 而不是 UIView 来检查视图是否具有控制器,但再次问自己为什么要这样做。
    • 啊哈,谢谢,这个问题与任何项目或实际实施无关,我只是想知道如何去做。谢谢。
    【解决方案2】:

    对于 iOS 8+:

    UITableView *tableView = cell.superview.superview;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多