简单的TableView单组数据展示/多组数据展示

  1 拖入TableView到UIView中,连线DataSource
  2
  3 1.实现数据源方法
  4 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
  5 {
  6     return ;
  7 }
  8
  9 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
 10 {
 11 return ;
 12 }
 13
 14 2.根据指定的的cell样式创建cell
 15 UITableViewCellStyleDefault
 16 UITableViewCellStyleValue1
 17 UITableViewCellStyleValue2
 18 UITableViewCellStyleSubtitle
 19
 20 3.解析字典—>字典转模型—>取出indexPath位置对应的XMGWine模型
 21
 22 4.设置数据(用创建出来的cell对象直接点出里面子控件设置)
 23
 24 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
 25 {
 26     // 创建一个UITableViewCellStyleSubtitle样式的cell
 27     UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:nil];
 28
 29     // 取出indexPath位置对应的XMGWine模型
 30     XMGWine *wine = self.wineArray[indexPath.row];
 31
 32     // 设置数据
 33     cell.imageView.image = [UIImage imageNamed:wine.image];
 34     cell.textLabel.text = wine.name;
 35     cell.detailTextLabel.text = [NSString stringWithFormat:@"¥%@", wine.money];
 36     cell.detailTextLabel.textColor = [UIColor orangeColor];
 37     //cell最右边的显示样式(‘>‘)
 38     cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
 39
 40     return cell;
 41 }
 42
 43 多组数据展示
 44 跟单组数据展示一样,但是数组里面又有数组,需要逐层转模型
 45 /********************************************************
 46  1> plist解析:
 47  以后遇到像这种复杂的plist,一层一层的往下解析.
 48  最终的目的就是将所有的字典转成模型.
 49  如果plist中字典在一个数组中,将来转出来的模型也放在一个数组中.
 50  也就是将字典数组转成模型数组.
 51
 52  2> plist的好处:方便管理数据
 53  *********************************************************/
 54
 55 设置数据需要先拿出组模型,再拿出行模型
 56
 57 #pragma mark - <UITableViewDataSource>
 58 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
 59 {
 60     return self.carGroups.count;
 61 }
 62
 63 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
 64 {
 65     XMGCarGroup *carGroup = self.carGroups[section];
 66     return carGroup.cars.count;
 67 }
 68
 69 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
 70 {
 71     UITableViewCell *cell = [[UITableViewCell alloc] init];
 72
 73     // 设置cell右边的指示样式
 74     cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
 75
 76     // 取出indexPath位置对应的XMGCar模型
 77     XMGCarGroup *carGroup = self.carGroups[indexPath.section];
 78     XMGCar *car = carGroup.cars[indexPath.row];
 79
 80     cell.textLabel.text = car.name;
 81     cell.imageView.image = [UIImage imageNamed:car.icon];
 82     return cell;
 83 }
 84
 85 /**
 86  *  告诉tableView第section组的头部标题文字
 87  */
 88 - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
 89 {
 90     XMGCarGroup *carGroup = self.carGroups[section];
 91     return carGroup.header;
 92 }
 93
 94 /**
 95  *  告诉tableView第section组的尾部标题文字
 96  */
 97 - (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
 98 {
 99     XMGCarGroup *carGroup = self.carGroups[section];
100     return carGroup.footer;
101 }
102
103 @implementation XMGCarGroup
104 + (instancetype)carGroupWithDict:(NSDictionary *)dict
105 {
106     XMGCarGroup *group = [[self alloc] init];
107     group.header = dict[@"header"];
108     group.footer = dict[@"footer"];
109
110     // 将字典数组(装着车的字典) -> 模型数据(装着车的模型)
111     NSMutableArray *cars = [NSMutableArray array];
112     for (NSDictionary *carDict in dict[@"cars"]) {
113         [cars addObject:[XMGCar carWithDict:carDict]];
114     }
115     group.cars = cars;
116
117     return group;
118 }
时间: 2024-12-14 22:29:25

简单的TableView单组数据展示/多组数据展示的相关文章

(一二四)tableView的多组数据展示和手动排序

最近在写一个轻量级的网络游戏,遇到了技能优先顺序手动排序的需求,我就想到了iOS自带的tableView编辑功能,对其进行了初步探索,最后做出的效果如下图所示: 点击左边可以删除,拖住右边可以手动排序,要实现这个功能,分以下步骤. ①用plist存储这些数据,可以看到数据分两个职业,每个职业4个技能,因此建立如下的plist结构: ②因为每个职业除了技能还有名称这个属性,因此应该用职业模型保存一个职业的所有数据,再用一个数组保存所有职业模型,职业模型的定义如下: #import <Foundat

从SQLite获取数据完成一个产品信息展示

在ios实际开发当中,我们常常用到Core Data做为数据储存首选.但在处理一些大量复杂的数据值且数据之间相互关联的时候,这就不得不使用关系型数据库来实现.例如一个导航程序,自身应该包含大量的地图自身数据并且数据需要在app启动的时候就开始读取加载.而且数据本身变动不是特别频繁.重复向服务器发送请求获取信息是一件十分浪费的事情.因此我们可以用一个本地数据文件来直接配置.做为轻量级关系型数据库的sqlite是ios开发首选.而xcode本身包含了sqlite库,因此在ios使用的时候不需要额外配

iOS开发——UI高级Swift篇&amp;swift简单总结tableView

swift简单总结tableView 今天来总结一个很简单的问题,真心说出来丢脸,但是由于本人在写swift项目的时候总是发现Xib不能加载,而且不止一次,所以就简单的总结一下! 一:简单的使用缓存池 1.设置StoryBoard中cell的ID 2.在控制器的Cell中就可以直接使用ID创建了 1 override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UI

[iOS基础控件 - 6.6.1] 展示团购数据代码

1.主控制器: 1 // 2 // ViewController.m 3 // GroupPurchase 4 // 5 // Created by hellovoidworld on 14/12/3. 6 // Copyright (c) 2014年 hellovoidworld. All rights reserved. 7 // 8 9 #import "ViewController.h" 10 #import "GroupPurchase.h" 11 #im

jquery: json树组数据输出到表格Dom树的处理方法

项目背景 项目中需要把表格重排显示 处理方法 思路主要是用历遍Json数组把json数据一个个append到4个表格里,还要给每个单元格绑定个单击弹出自定义对话框,表格分了单双行,第一行最后还要改rowspan呵呵,程序还没优化运行正常先给客户展示先:) 1,表格数据->json数组 var keyArr = new Array(); var jsonArr = new Array(); $list.find("thead th").each(function () { keyA

ios基础控件 之展示团购数据 UITableViewCell &lt;代理,xib封装view&gt;

1.主控制器: 1 // 2 // ViewController.m 3 // GroupPurchase 4 // 5 // Created by hellovoidworld on 14/12/3. 6 // Copyright (c) 2014年 hellovoidworld. All rights reserved. 7 // 8 9 #import "ViewController.h" 10 #import "GroupPurchase.h" 11 #im

mycncart操作使用教程 - 品牌展示模组

许多朋友对于[品牌展示]模组中的相关图片是从哪里设置的不知道. 如要修改[品牌展示模组]中的图片,路径为:[系统设置]->[规划设计]->[横幅广告],默认mycncart系统中有[品牌制造商],可以编辑它以替换图片.

AMDU恢复ASM磁盘组数据(测)

--umount ASMCMD> umoung -a asmdg commands: md_backup, md_restor lsattr, setattr cd, cp, du, find, help, ls, lsct, lsdg, lsof, mkalias mkdir, pwd, rm, rmalias chdg, chkdg, dropdg, iostat, lsdsk, lsod, mkdg, mount offline, online, rebal, remap, umount

Linechart + Datagrid 互动展示数据 (Linechart自定义数据点选择线)

如上图示,在linechart中添加红色Y线,拖动该线的过程中,经过数据点时,会实时更新datagrid中对应的X.Y值数据. 实现要点: 1.linechart添加Y线 继承mx.charts.chartClasses.ChartElement,自定义Y线. package { import flash.display.Graphics; import flash.geom.Point; import flash.text.TextField; import mx.charts.chartCl