如何摆脱特定的TableView单元格

doc92606

我的表格视图中填充了一些单元格,这些单元格显示了具有名称,价格和品牌的项目。我从Web服务获得的一些对象返回,在表视图单元格上看起来很丑。我不想填充价格为“ null”的表视图单元格。到目前为止,这是我的代码。现在,我将其更改为“价格不可用”。

   for (NSDictionary *objItem in resultsArray)
{
     NSString *currentItemName = [objectTitlesArray objectAtIndex:indexPath.row];

    if ([currentItemName isEqualToString:objItem[@"title"]])
    {
        if (cell.priceLabel.text != (id)[NSNull null] && cell.priceLabel.text.length != 0 && cell.brandLabel.text != (id)[NSNull null] && cell.brandLabel.text.length != 0)
        {


        cell.nameLabel.text = currentItemName;

            NSDictionary *bestPageDictionary = objItem[@"best_page"];

            NSNumber *price = bestPageDictionary[@"price"];

            if ((cell.priceLabel.text = @"<null>"))
            {
                cell.priceLabel.text = @"Price Unavailable";
            }

            else
            {

            cell.priceLabel.text = [NSString stringWithFormat:@"$%@", price];
            }


            NSArray *brandsArray = objItem[@"brands"];
        cell.brandLabel.text = [brandsArray firstObject];
        }

    }
}
抒情熊猫

这是非常低效的。您要在字典中保留JSON(我假设是)返回值,然后为正在创建的每个单元循环字典。不仅如此,您还没有提前清理JSON。

创建一个无用的单元格然后回去尝试删除它要昂贵得多。在您的numberOfRowsInSection代表中,您已经告诉过tableview您X多个单元格。现在,您正在尝试删除将使回调弄乱的单元格。您必须创建一个方法,该方法将在完成所有单元的创建之后运行,然后将循环所有单元以将它们从tableView中删除,然后将其调用[table reloadData]但是,由于实际上并未从中删除数据,因此NSDictionary实际上您将再次创建相同数量的单元格并陷入无限循环。

解决方案:

首先,更改您的结构。获得JSON返回值后,请对其进行清理以删除所有没有价格的值。我建议还使用一个对象类来保存每个服务器对象。这将大大简化TableView以及其他类的代码。现在您已经清理了退货,请将其从更改NSDictionaryNSMutableArray然后numberOfRowsInSection:打给你[array count]cellForRowAtIndexPath:您看来,只是[array objectAtIndex:indexPath.row]为了得到您的对象。

您将希望代码大致如下所示:

ServerItem.h : NSObject{
  @property (nonatomic,retain) NSString* name;
  ...
  add in other properties here
}


- (NSMutableArray *) parseJSON:(NSDictionary *)jsonDict{
  NSMutableArray *returnArray = [NSMutableArray array];
  NSArray *dictArray = [NSArray arrayWithArray:jsonDict[@"results"]];
  for (NSDictionary *itemDict in dictArray)
  {
    NSDictionary *bestPageDictionary = objItem[@"best_page"];
    if (![bestPageDictionary[@"price"] isEqualToString:@"<null>"]])
    {
      ServerItem item = [ServerItem new];
      item.price = ...
      item.name = ....
      [returnArray addObject:item];
    }       
  }
  return returnArray;
}

在您的webService代码中:

self.itemArray = [self parseJSON:dataDictionary];

然后

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [self.itemCallArray count]    
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
  ...
  ServerItem *cellItem = [self.itemsArray objectAtIndex:indexPath.row];
  cell.nameLabel.text = cellItem.name;
  cell.priceLabel.text = cellItem.price;
  ...

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使JavaFX TableView单元格可编辑?

来自分类Dev

如何在iOS中设置tableView单元格标题?

来自分类Dev

如何摆脱特定的TableView单元格

来自分类Dev

JavaFX TableView如何获取单元格的数据?

来自分类Dev

如何在TableView中复制/粘贴表格单元格

来自分类Dev

如何在TableView单元格中检测多个按钮

来自分类Dev

仅对特定单元格启用-tableView:commitEditingStyle:forRowAtIndexPath

来自分类Dev

如何隐藏特定的单元格边框?

来自分类Dev

动态Tableview单元格

来自分类Dev

如何更改tableView单元格textLabel的宽度

来自分类Dev

如何取消突出显示tableview单元格?

来自分类Dev

如何从TableView单元格检索文本字段值

来自分类Dev

如何将tableView的特定行单元格的图像设置为动态图像

来自分类Dev

如何使用Rx和嵌套单元格视图突出显示tableView单元格?

来自分类Dev

如何摆脱网格生成的多余单元格?

来自分类Dev

如何快速减少tableView单元格中的代码

来自分类Dev

如何摆脱TableBody中的表格单元格?

来自分类Dev

如何使用UILongPressGestureRecognizer从tableview单元格按钮传递数据?

来自分类Dev

如何摆脱表格单元格中多余的垂直间距?

来自分类Dev

创建tableView单元格

来自分类Dev

Javafx Tableview如何为具有特定值的单元格着色

来自分类Dev

如何在TableView单元格中选择和显示特定信息?

来自分类Dev

当在同一单元格中单击按钮时,如何在自定义tableview单元格中隐藏/显示特定视图

来自分类Dev

Tableview单元格覆盖

来自分类Dev

tableview单元格如何快速调整单元格的大小以及图像和标签

来自分类Dev

Tableview单元格偏移

来自分类Dev

TableView 单元格操作

来自分类Dev

如何在tableview中的单元格之间放置临时单元格?

来自分类Dev

选择单元格内的图表时,如何停用 tableView 单元格内的垂直滚动?

Related 相关文章

  1. 1

    如何使JavaFX TableView单元格可编辑?

  2. 2

    如何在iOS中设置tableView单元格标题?

  3. 3

    如何摆脱特定的TableView单元格

  4. 4

    JavaFX TableView如何获取单元格的数据?

  5. 5

    如何在TableView中复制/粘贴表格单元格

  6. 6

    如何在TableView单元格中检测多个按钮

  7. 7

    仅对特定单元格启用-tableView:commitEditingStyle:forRowAtIndexPath

  8. 8

    如何隐藏特定的单元格边框?

  9. 9

    动态Tableview单元格

  10. 10

    如何更改tableView单元格textLabel的宽度

  11. 11

    如何取消突出显示tableview单元格?

  12. 12

    如何从TableView单元格检索文本字段值

  13. 13

    如何将tableView的特定行单元格的图像设置为动态图像

  14. 14

    如何使用Rx和嵌套单元格视图突出显示tableView单元格?

  15. 15

    如何摆脱网格生成的多余单元格?

  16. 16

    如何快速减少tableView单元格中的代码

  17. 17

    如何摆脱TableBody中的表格单元格?

  18. 18

    如何使用UILongPressGestureRecognizer从tableview单元格按钮传递数据?

  19. 19

    如何摆脱表格单元格中多余的垂直间距?

  20. 20

    创建tableView单元格

  21. 21

    Javafx Tableview如何为具有特定值的单元格着色

  22. 22

    如何在TableView单元格中选择和显示特定信息?

  23. 23

    当在同一单元格中单击按钮时,如何在自定义tableview单元格中隐藏/显示特定视图

  24. 24

    Tableview单元格覆盖

  25. 25

    tableview单元格如何快速调整单元格的大小以及图像和标签

  26. 26

    Tableview单元格偏移

  27. 27

    TableView 单元格操作

  28. 28

    如何在tableview中的单元格之间放置临时单元格?

  29. 29

    选择单元格内的图表时,如何停用 tableView 单元格内的垂直滚动?

热门标签

归档