您的位置:首页 > 移动开发 > IOS开发

iOS tableView 控件用法 [转]

2013-02-28 09:05 274 查看

iOS tableView 控件用法



在iPhone或者iPad开发过程中,最重要的可能就是TableView的使用了,不管你是什么应用,只要涉及到信息展示,都要用到UITableView这个控件。

我就简单的介绍一下UITableView这个控件的使用方法吧。

因为使用IB截图比较麻烦,我下面基本上使用代码来创造控件,而不展示使用IB创造空间的方法,要是有疑问的朋友,可以联系我。

首先我们要介绍的是如何创建一个UITableView。

[cpp] viewplaincopy

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显示的内容和功能都有区别。)

以下是两个代理方法的实现。

[cpp] viewplaincopy

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

{

return [self.dataArray count];

}

[cpp] viewplaincopy

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

// Configure the cell...

if (cell == nil) {

cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

}

cell.textLabel.text = [self.dataArray objectAtIndex:indexPath.row];

return cell;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: