iOS tableView 控件用法

在iPhone或者iPad开发过程中,最重要的可能就是TableView的使用了,不管你是什么应用,只要涉及到信息展示,都要用到UITableView这个控件。
我就简单的介绍一下UITableView这个控件的使用方法吧。
因为使用IB截图比较麻烦,我下面基本上使用代码来创造控件,而不展示使用IB创造空间的方法,要是有疑问的朋友,可以联系我。
首先我们要介绍的是如何创建一个UITableView。
- self.myTableView
= [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 416) style:UITableViewStylePlain]; -
self.myTableView.dataSource = self; // 指定TableView的数据源,用以接收UITableViewDataSource的代理方法 -
self.myTableView.delegate = self; // 指定TableView的代理,用以接收UITableViewDelegate的代理方法 -
[self.view addSubview: self.myTableView]; // 将TableView放入controller的View容器内
使用以上方法可以创建一个Plain类型的UITableView。各行代码的功能见注释。
UITableViewDataSource主要是用来处理TableView的数据源,包括确定TableView有多少个Section,每个Section有多少个Cell,确定每个Cell的对象,确定Section的HeaderView和FooterView,确定Cell的数目和位置是否可以编辑等功能。
UITableViewDelegate则会处理每一个Cell显示的问题,类似cell出现前,出现后,每一个cell的高度是多少,cell的访问方式,等等问题。
如果想实现Table最基本的功能,那就只要实现UITableViewDataSource必须的两个代理方法就可以了。当然我们还要给他设定一个数据源。
这个数据源一般情况下,是一个数组,但是也可以用别的集合来做,甚至可以不用集合,直接写明数量,然后在设置Cell的方法里面再指定数据。(这种做法常见于设置页面,每个Cell显示的内容和功能都有区别。)
以下是两个代理方法的实现。
-
- -
(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section - {
-
return [self.dataArray count]; - }
-
- -
(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath -
- {
-
static NSString *CellIdentifier = @"Cell"; -
UITableViewCell *cell = [tableView dequeueReusableCellWithI dentifier:CellIdentifier]; -
-
// Configure the cell... -
if (cell == nil) { -
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefa ult reuseIdentifier:CellIdentifier]; -
} -
cell.textLabel.text = [self.dataArray objectAtIndex:indexPath.row]; -
-
return cell; - }