介绍


简而言之,TableView是一个被分成不同部分的滚动视图,每部分又进一步被分成行。每行是一个UITableViewCell类的实例。通过些类的子类,可以创建自定义TableView的行。

使用TableView是一个向用户项目列表的理想方法。你可以把图片、文本和其他任何东西嵌入TableView单元格,可以自定义它们的高度、形状、分组、或更多TableView结构的简易性使用其高度可自定义。

一个TableView可以输入TableView数据源的数据,你会接收到各种事件并用TableView委托对象来控制其物理外观。这些分别在UITableViewDataSource和UITableViewDelegate的协议来定义。

尽管UITableView实例将UIScrollView子类化,TableView只能垂直滚动,这更大程序上是一个特点而非局限。

实例化TableView


问题

在你的UI中放置一个TableView.

方案

实例化一个UITableView类的对象并把它一个子视图添加到你的视图中。

讨论

有2个办法可以实例化TableView:

  1. 通过代码
  2. 使用界面生成器(Interface Builder)

如果你使用界面生成器,创建一个TableView就是简单的把一个TableView从对象库拖拽到你的.xib文件中。如果你使用代码创建组建更顺手的话,也没有问题。你必须做的事情就是把UITableView类的一个对象实例化,让我们通过在视图控制器的头文件中定义我们的TableView开始:

#import <UIKit/UIKit.h>
@interface Instantiating_a_TableView_ViewController : UIViewController
@property (nonatomic, strong) UITableView *myTableView;
@end

创建视图控制器就像分配和初始化UITableView的实例一样简单:

- (void)viewDidLoad {
[super viewDidLoad];

self.view.backgroundColor = [UIColor whiteColor];
self.myTableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
[self.view addSubView:self.myTableView];
}

视图控制器中初始值设定项inti偗e:style:的样式参数允许我们需要哪种类型的TableView.有2种风格我们可以选择。

  • UITableViewStylePlain

创建一个没有背影图片的空白TableView

  • UITableViewStyleGrouped

创建一个有背影图片和圆角组边框的TableView,类似于Settings app。

如果你现在在iPhone模拟器上运行APP,将看到没有填充TableView单元格的TableView放在那里。

TableView-1

图4-1. 一个没有内容的空白Table View