UIXX-UITableView制作简单表格

来源:互联网 发布:傲剑九阴真经数据 编辑:程序博客网 时间:2024/06/06 00:37

一、创建一个工程,在ViewController.h文件中编写代码:

#import <UIKit/UIKit.h>

//添加两个协议一个是表格视图数据源协议,一个是表格视图代理协议

@interface ViewController :UIViewController<UITableViewDataSource,UITableViewDelegate>

@end


二、在ViewController.m文件中编写代码

#import "ViewController.h"


@interface ViewController ()


@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

//步骤二、

    //创建一个区域用来显示表格

    CGRect rect =CGRectMake(0,40,300,420);

    //初始化表格视图

    UITableView *tableView = [[UITableViewalloc]initWithFrame:rect];

    //设置表格视图对象的代理

    tableView.delegate =self;

    //表格视图数据源的代理

    tableView.dataSource =self;

    //将表格视图添加到当前窗口根视图

    [self.viewaddSubview:tableView];

}

//步骤一:

//该代理方法设置表格行数

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

{

    return5;

}

//该代理方法用来初始化和返回表格视图的单元格,是最重要的一个方法

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

{

    //创建一个字符串作为单元格的标识符

    /*单元格的标识符可以看作是一种重用机制,此方法可以从所有已经开辟内存单元格里面,选择一个具有同样标识符的,空闲的单元格

     */

    static NSString *identifier =@"cellIndentifier";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];

    //如果没有可重用单元格创建新的单元格

    if (cell ==nil) {

        cell = [[UITableViewCellalloc]initWithStyle:

UITableViewCellStyleSubtitle reuseIdentifier:identifier];

        //设置单元格标题文字内容

        cell.textLabel.text =@"Cell title here.";

        //设置单元格文字描述内容

        cell.detailTextLabel.text =@"Detail Information here.";

    }

    return cell;

}

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


@end

运行结果:


总结:

一、Controller需要实现两个  delegate,分别是  UITableViewDelegate  UITableViewDataSource


二、UITableView对象的 delegate要设置为 self


cell重用原理

当滚动列表时,部分UITableViewCell会移出窗口,

UITableView会将窗口外的UITableViewCell放入一个对象池中,等待重用。

当UITableView要求dataSource返回UITableViewCell时,

dataSource会先查看这个对象池,

如果池中有未使用的UITableViewCell,

dataSource会用新的数据配置这个UITableViewCell,

然后返回给UITableView,

重新显示到窗口中,从而避免创建新对象


不同类型的Cell重用

UITableViewCell有个NSString *reuseIdentifier属性,

可以在初始化UITableViewCell的时候传入一个特定的字符串标识来设置reuseIdentifier(一般用UITableViewCell的类名)。

当UITableView要求dataSource返回UITableViewCell时,

先通过一个字符串标识到对象池中查找对应类型的UITableViewCell对象,

如果有,就重用,

如果没有,就传入这个字符串标识来初始化一个UITableViewCell对象



原创粉丝点击