tableview cell 与 遍历字典?

iOS 码拜 10年前 (2015-05-08) 902次浏览 0个评论
 

这个标题弄的有点糊涂,不知道能不能引起各位大侠的注意!
是这样的,我有一些数据,用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的行?  谢谢!

20分
把字典转换数组,数组的下标对应tableview的row
引用 1 楼 darkdong 的回复:

把字典转换数组,数组的下标对应tableview的row

这个怎么转换?能给个例子吗?  谢谢!

NSDictionary的方法allValues返回所有值的数组
另外可能还需要将数组做一下排序处理
30分
对table的delegate和array的理解不够
每个cell的数据源对应[array objectatindex:row]即可
引用 4 楼 arthurchenjs 的回复:

对table的delegate和array的理解不够
每个cell的数据源对应[array objectatindex:row]即可

你说的对,因为刚开始学,所以我第一次接触,不管是tableview还是NSdictionary,现在还是一点头绪都没有。

引用 4 楼 arthurchenjs 的回复:

对table的delegate和array的理解不够
每个cell的数据源对应[array objectatindex:row]即可

我要在每个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中没有内容。  这个要怎么写?请大侠你支招!谢谢!

50分
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;
}

引用 7 楼 zhanglei5415 的回复:

1.在控制器的viewDidLoad方法加加载json 中的数据,并得到NSDictionary 对象
2.在UITableView 的委托方法

-(UITableViewCell *)tableView:(UITableView *)tableView 
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  NSUInteger row……

谢谢两位大哥的指点,现在可以了,就是一个frame的大小没设定好!

你说的对,因为刚开始学,所以我第一次接触,不管是tableview还是NSdictionary,现在还是一点头绪都没有。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明tableview cell 与 遍历字典?
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!