多组数据的TableView的设计方法:每一组用一个模型对象表示。

模型包含了标题数据和行数据的数组,在控制器里包含模型的组来对各个模型进行初始化。

在tableView相应的方法中,从控制器的模型组中取出模型来处理。

需要补充一点cell的获取,使用方法:

UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];

这种方法不必先创建cell然后赋值identifier。

以展示汽车数据为例,汽车数据包含了头标题写车系,尾描述,和相应车系的车辆数据。

1.建立模型,模型的结构为:

@interface CarGroup : NSObject

/**
* 头部标题
*/
@property (nonatomic, copy) NSString *title; /**
* 尾部标题
*/
@property (nonatomic, copy) NSString *desc; /**
* 这组所有的车(字符串)
*/
@property (nonatomic, strong) NSArray *cars; @end

2.在控制期内建立一个模型组,并进行初始化:

@property (nonatomic, strong) NSArray *carGroups;

重写get方法进行懒加载:

- (NSArray *)carGroups{
if (_carGroups == nil) {
//初始化各组
//德系品牌
CarGroup *cg1 = [[CarGroup alloc] init];
cg1.title = @"德系品牌";
cg1.desc = @"德系品牌很好";
cg1.cars = @[@"奔驰",@"宝马",@"奥迪"]; CarGroup *cg2 = [[CarGroup alloc] init];
cg2.title = @"日韩品牌";
cg2.desc = @"日韩品牌品牌很好";
cg2.cars = @[@"本田",@"丰田"]; _carGroups = @[cg1,cg2]; }
return _carGroups;
}

3.在各个方法中从carGroups中获取模型,然后赋值,不再赘述。

Tip:控制器可以控制状态栏,通过重写perfersStatusBarXxx系列方法进行修改。

TableView的Style样式讨论

plain样式,向上推的时候头部会停住(例如QQ好友列表),iOS的细节:第二组的标题会把第一组的标题顶上去。

Grouped样式,向上推的时候头部会跟着上去。

(十三)UITableView数据模型化的更多相关文章

  1. ios Coredata 关联 UITableView 数据自动更新

    昨天写了一篇关于coredata的文章,自己觉得挺傻的文章.没想其它程序员看过后觉得更傻,于是今天决定写一篇厉害点的,首先写了一个coredata和uitableview结合的框架,非常简单实现了数据 ...

  2. geotrellis使用(十三)数据导入BUG解决方案说明

    Geotrellis系列文章链接地址http://www.cnblogs.com/shoufengwei/p/5619419.html 目录 前言 BUG说明 解决方案 总结 一.前言         ...

  3. salesforce 零基础学习(二十三)数据记录导出至excel(自定义报表导出)

    我们都知道,报表有个功能为导出excel,但是有的时候客户需求往往标准的报表达不到,比如导出excel,其中本月修改的数据字段标红,如下图所示. 这就需要我们去写VF来实现此功能. 需求:将数据表记录 ...

  4. MyCat 学习笔记 第十三篇.数据分片 之 通过HINT执行存储过程

    1 环境说明 VM 模拟3台MYSQL 5.6 服务器 VM1 192.168.31.187:3307 VM2 192.168.31.212:3307 VM3 192.168.31.150:  330 ...

  5. Spring+SpringMVC+MyBatis+easyUI整合优化篇(十三)数据层优化-表规范、索引优化

    本文提要 最近写的几篇文章都是关于数据层优化方面的,这几天也在想还有哪些地方可以优化改进,结合日志和项目代码发现,关于数据层的优化,还是有几个方面可以继续修改的,代码方面,整合了druid数据源也开启 ...

  6. Spring MVC 使用介绍(十三)数据验证 (一)基本介绍

    一.消息处理功能 Spring提供MessageSource接口用于提供消息处理功能: public interface MessageSource { String getMessage(Strin ...

  7. React-Native 之 GD (十三)数据持久化(realm) 及 公共Cell

    1.数据持久化 数据持久化是移动端的一个重要部分,刚发现 Realm 原来已经支持 React-Native 了 步骤一: 引入 realm $ npm install realm --save 步骤 ...

  8. IOS第七天(4:UiTableView 数据的显示优化重复实例和tableFooterView和tableHeaderView)

    //加上头部 和底部 - (void)viewDidLoad { [super viewDidLoad]; [self tableView]; // 设置行高 self.tableView.rowHe ...

  9. 解决UITableView数据没有充满屏幕时,显示多余的空白cell的问题

    #pragma mark 去除多余的线 -(void) clearExtrLine{ UIView *view = [[UIView alloc] init]; view.backgroundColo ...

随机推荐

  1. MongoDB 关系

    MongoDB 的关系表示多个文档之间在逻辑上的相互联系. 文档间可以通过嵌入和引用来建立联系. MongoDB 中的关系可以是: 1:1 (1对1) 1: N (1对多) N: 1 (多对1) N: ...

  2. Docker 容器格式

    最初,Docker 采用了 LXC 中的容器格式.自 1.20 版本开始,Docker 也开始支持新的 libcontainer 格式,并作为默认选项. 对更多容器格式的支持,还在进一步的发展中.

  3. Python教学相关资料

    Python教学调查链接 一.专题 1.绘图 如何开始使用Python来画图 Python画图总结 2.科学计算与数据分析 3.可视化 4.网络爬虫 5. 做笔记 Python-Jupyter Not ...

  4. 安卓高级3 Android应用Design Support Library完全使用实例

    原作者:http://www.open-open.com/lib/view/open1433385856119.html 1 背景 上周一年一度的Google IO全球开发者大会刚刚结束,Google ...

  5. Swift中如何化简标准库中冗长的类实例初始化代码

    可能有些童鞋并不知道,在Swift中缩写点符号对于任何类型的任何static成员都有效. 我们实际写一个例子看一下: import UIKit class CFoo{ static let share ...

  6. cuda网格的限制

    限制于计算能力有关. 详情 http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#compute-capabilities 只 ...

  7. 安卓如何快速更新SDK

    打开SDK Manager,点击tools->options打开,如图: Proxy Setting如下设置: HTTP Proxy server:mirrors.neusoft.edu.cn ...

  8. storm消费kafka实现实时计算

    大致架构 * 每个应用实例部署一个日志agent * agent实时将日志发送到kafka * storm实时计算日志 * storm计算结果保存到hbase storm消费kafka 创建实时计算项 ...

  9. POI操作excel中的日期格式处理

    转载:http://blog.csdn.net/fuxiaohui/article/details/6239925 7.3.3 POI中Excel文件Cell的类型 在读取每一个Cell的值的时候,通 ...

  10. 18 UI美化状态集合的位图selector

    当我们某个控件 想在不同状态下显示不同的背景图的需求 如我们需要按钮在正常状态显示一种图 按下显示另一背景图 或者单选框被选中时是一种显示图片 没选中是另一种背景图 例子 按钮在不同状态显示不同的背景 ...