UI第九天:UITableView表视图

⼀、表视图
表视图 UITableView,iOS中最重要的视图,随处可⻅。
表视图通常⽤来管理⼀组具有相同数据结构的数据。

UITableView继承⾃UIScrollView,所以可以滚动
表视图的每⼀条数据都是显⽰在UITableViewCell对象中
表视图可以分区显⽰数据,每个分区称为⼀个section,每⼀⾏称为 row,编号都是从0开始

表视图的创建及显⽰数据


DataSource数据源
我们需要给tableView指定⼀个数据源,它负责给tableView提供数据
需要实现协议中两个必须实现的⽅法

UITableView中每⼀个单元格,被称为⼀个cell (UITableViewCell)。
系统预置了4种(枚举)样式的cell。
不同样式的cell包含的控件有细微差别。

⼆、UITableViewCell的重⽤机制
UITableView靠mutableSet来实现重⽤功能
出屏幕的cell会被添加到mutableSet中,进⼊屏幕的cell,先从set中 获取,如果获取不到,才创建⼀个cell。在cell显⽰之前,给cell赋上 相应的内容。
cell的reuseIdentifier是重⽤的关键。

三、表视图的相关配置⽅法
NSIndexPath

多个分区
tableView默认是⼀个分区,可以设置多个分区
tableView的plain、group样式决定分区的样式不同 每个分区可以设置区头区尾

⾃定义区头区尾


单元格⾼度及选中


总结
tableView有2种样式:plain和grouped。
由datasource提供要显⽰的数据,delegate提供辅助设置。
系统提供4中样式的cell。
tableView的重⽤机制极⼤提升了性能。
// 拿到文件路径
   
NSString *path = [[NSBundle mainBundle] pathForResource:@"TableViewPlist" ofType:@"plist"];
   
self.dic = [NSDictionary dictionaryWithContentsOfFile:path];
   
// value中的字典转化为数据模型
   
   
//创建装完model的字典
   
self.dataDic = [NSMutableDictionary dictionary];
   
   
// 遍历字典 进行
   
NSArray *keys = self.dic.allKeys;
   
for (int i = 0; i < keys.count; i++) {
       
//取出每一个key
       
NSString *key = keys[i];
       
//用每一个key取出 对应的value
       
NSArray *value = [self.dic objectForKey:key];
       
       
//创建临时数组保存每一个赋值完成的model
       
NSMutableArray *temparr = [NSMutableArray array];
       
       
// 遍历每一个value
       
for (NSDictionary *oneDic in value) {
           
//model赋值
           
//创建model
           
Cellmodel *cellmode = [[Cellmodel alloc]init];
           
// 你给我一个字典 我给你一个model
            [cellmode
setValuesForKeysWithDictionary:oneDic];
           
// model装进数组中
            [temparr
addObject:cellmode];
            [cellmode
release];
           
        }
       
// 重新构建 字典 的键值对
        [
self.dataDic setObject:temparr forKey:keys[i]];
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值