【问题标题】:Using a UITableView subclass with a UITableViewController将 UITableView 子类与 UITableViewController 一起使用
【发布时间】:2010-10-26 20:53:48
【问题描述】:

如何告诉我的UITableViewController 使用我的自定义UITableView 子类,因为它是tableView 而不是常规的UITableView

【问题讨论】:

    标签: iphone uitableview


    【解决方案1】:

    UITableViewController 只是一个带有 UITableView 实例的 UIViewController,并且 viewController 设置为表的委托和数据源。 viewController 为这些委托方法实现存根。

    您可以通过让 UIViewController 实现 UITableViewDataSource 和 UITableViewDelegate 协议来自己完成。然后在 UIViewController 的 loadView(或 viewDidLoad)方法中设置 tableView 实例的 dataSource 和 delegate 为 self。

    您可以在那里使用自己的表子类。

    【讨论】:

    • 这是误导。例如,UITableViewController 还包括键盘回避。
    • 什么是键盘回避?
    • 当单元格中有文本字段时,当键盘出现时表格会调整大小并且文本字段保持在视图中。
    • 不正确,uitableviewcontroller 没有视图属性。还有更多区别
    【解决方案2】:

    在界面生成器中,将 tableview 类与身份检查器视图中的自定义 tableview 关联

    【讨论】:

      【解决方案3】:

      将 UITableViewController.tableView 属性设置为自定义 UITableView 子类的实例。

      【讨论】:

      • 假设我在设置self = [super initWithStyle:style] 后在initWithStyle: 中执行此操作。我怎么知道-[UITableViewController initWithStyle:] 对其tableView 做了哪些更改?我可能正在撤消这些。见stackoverflow.com/questions/8512793/…
      • 恕我直言,最好的方法是用 self.tableView = [[MyTableViewSubclass alloc] init] 之类的东西覆盖 loadView
      • 如果您这样做,请确保也设置delegatedataSource,否则您的表格将不会加载任何内容。
      猜你喜欢
      • 2016-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-12
      • 1970-01-01
      相关资源
      最近更新 更多