tableview cell 与 遍历字典?

linux_fay 2011-05-20 09:34:51
这个标题弄的有点糊涂,不知道能不能引起各位大侠的注意!
是这样的,我有一些数据,用JSON来存,然后读到了字典里。打印出来字典里的数据如下:

{ScoreDoc = ({"id" = 1,"shop_id" = 3579, "city_id" = 3, shop_name = "NIKE",image = "nike.jpg",shoptitle = "welcome to NIKE",……},
{"id" = 2,"shop_id" = 4673, "city_id" = 3, shop_name = "ANTA",image = "anta.jpg",shoptitle = "welcome ti ANTA",……},
{……},
{……},);
totalHits = 5000;
useSecond = "0.006";}


我定义了一个tableview,定义了一个tableviewcell, cell中的控件中一个UIImageView,两个TextLabel,我想要在tableview的第一行的左边显示NIKE的一张图片,右边上方的label显示shop_name,右边下方的label显示shoptitle,在tableview的第二行的左边显示ANTA的一张图片,右边上方的label显示shop_name,右边下方的label显示shoptitle,依此类推。

要做到这种效果,我该怎么做?首先我肯定要遍历字典,要怎么遍历呢?接下来应该怎么做才能把对应的内容显示在对应的tableview的行? 谢谢!
...全文
225 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ReyZhang 2011-05-23
  • 打赏
  • 举报
回复
1.在控制器的viewDidLoad方法加加载json 中的数据,并得到NSDictionary 对象
2.在UITableView 的委托方法

-(UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSUInteger row=[indexPath row];
NSDictionary *mydict=[dict objectForKey:@"ScoreDoc"];
UITableViewCell *cell=nil;
......
......
cell.textLabel.text=[mydict objectForKey:@"shop_name"];
....
return cell;
}
linux_fay 2011-05-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 arthurchenjs 的回复:]
对table的delegate和array的理解不够
每个cell的数据源对应[array objectatindex:row]即可
[/Quote]

我要在每个cell中显示不同的图片
cell.imageView.image = [UIImage imageNamed:[data objectAtIndex:[indexPath row] ] objectForKey:@"coupon_s_image"];
这样用不对吗?
还有,我有两个textLabel,用了tag来控制显示,可是不起作用,

if(cell.textLabel.tag == 1){
cell.textLabel.text = [[data objectAtIndex:[indexPath row] ] objectForKey:@"shop_name"];
}
if(cell.textLabel.tag == 2){
cell.textLabel.text = [[data objectAtIndex:[indexPath row] ] objectForKey:@"coupon_title"];
}
这样的话,cell中没有内容。 这个要怎么写?请大侠你支招!!!谢谢!
linux_fay 2011-05-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 arthurchenjs 的回复:]
对table的delegate和array的理解不够
每个cell的数据源对应[array objectatindex:row]即可
[/Quote]
你说的对,因为刚开始学,所以我第一次接触,不管是tableview还是NSdictionary,现在还是一点头绪都没有。
yj860512 2011-05-23
  • 打赏
  • 举报
回复
你说的对,因为刚开始学,所以我第一次接触,不管是tableview还是NSdictionary,现在还是一点头绪都没有。
linux_fay 2011-05-23
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zhanglei5415 的回复:]
1.在控制器的viewDidLoad方法加加载json 中的数据,并得到NSDictionary 对象
2.在UITableView 的委托方法

-(UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSUInteger row……
[/Quote]

谢谢两位大哥的指点,现在可以了,就是一个frame的大小没设定好!
ArthurChen 2011-05-22
  • 打赏
  • 举报
回复
对table的delegate和array的理解不够
每个cell的数据源对应[array objectatindex:row]即可
linux_fay 2011-05-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 darkdong 的回复:]
把字典转换数组,数组的下标对应tableview的row
[/Quote]
这个怎么转换?能给个例子吗? 谢谢!
巴依老爷 2011-05-21
  • 打赏
  • 举报
回复
NSDictionary的方法allValues返回所有值的数组
另外可能还需要将数组做一下排序处理
巴依老爷 2011-05-20
  • 打赏
  • 举报
回复
把字典转换数组,数组的下标对应tableview的row

29,027

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧