iOS - 表视图和表视图控制器之间有什么区别

时间:2011-12-28 12:52:26

标签: ios uikit uitableview

在Xcode的对象库中,有两个可用于创建表视图的选项 - 表视图和表视图控制器。 这两者之间有什么区别?何时使用它们?

2 个答案:

答案 0 :(得分:21)

TableViewController是一个内置TableView的ViewController。这将需要已声明和设置所需的委托方法。这个VC已经是一个TableView委托和数据源。它无法调整大小。上行是易用性,下行灵活性非常有限。

TableView只是一个TableView(UIView的子类)。它可以添加到ViewController并调整大小,与另一个基于视图的对象一起使用,等等。优点是灵活性,缺点是你必须自己设置委托和数据源方法(在我看来,非常值得花时间去获取)灵活性)。

另一个注意事项是,当使用新的Static TableView单元格(iOS5的一部分)时,您必须使用TableViewController。

答案 1 :(得分:5)

UITableViewControllerUIViewController的子类。它已假定您将UITableView作为您的rootView,因此您已经可以从代码访问tableView(self.tableView)。它实现了UITableViewDataSourceUITableViewDelegate协议。它还为您提供了许多方法来覆盖。它允许您不依赖于XIB文件,因为您已经知道将拥有什么(UITableView作为rootView。)

UITableView只是UIView,通常您必须遵守我在UIViewController上面引用的协议才能填充(数据源)并使用它(代表),您可能需要为UITableView创建一个IBOutlet。

一方面你有速度,但你没有其他路径那么灵活。另一方面,你却恰恰相反。