OStack程序员社区-中国程序员成长平台

标题: ios - Swift Tableview 单元格按钮图像根据 tableview 数据更改 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 20:26
标题: ios - Swift Tableview 单元格按钮图像根据 tableview 数据更改

我正在尝试解析 JSON 并在 tableview 数组中附加 JSON 响应值。在下面的响应 subcategory 几个对象我得到了值,但其中一些我得到了 null。

{
    "category": [
    {
    "id": 0,
    "subcategory": [   //Table cell button need to show green color
    {
    "subcategory_id": 10
    }
    ]
    },
    {
    "id": 0,
    "subcategory": null //Table cell button need to show red color
    }
    ]
}
  1. 我需要将值附加到数组 中,例如:[10, null,....]。如果子类别 null 意味着我需要存储 null 否则它的值。

  2. 应用到单元格后,如果值为null需要更改单元格按钮图片。

我尽力解决超出范围的问题,但在上述情况下我没有得到很好的结果。

这是我的代码

 if indexPath.row < id.count {
            cell.accessibilityValue = String(id[indexPath.row]) // If the cell.accessibilityValue not null then need to change cell button image.
        }
        cell.name_Label.text = name[indexPath.row]
        cell.city_Label.text = city[indexPath.row]

从 JSON self.id.append(items) 追加的数组。我得到输出 like [10] 但实际结果应该是 [10,null]。数组的长度不正确,如果数据为 null 或 nil,我需要数据为“null”,因为我通过索引获取值,并且每个索引都知道为 null 或具有值,但它必须存在



Best Answer-推荐答案


  1. id 应该是 optional Int
  2. 的数组
  3. subcategory_id 应该是 optional Int

    var subcategory_id: Int?
    var id: [Int?] = []
    
    if let subCat = subcategory_id {
       id.append(subCat)
    } 
     else {
            id.append(nil) // id=[nil]
          }
    

    在你的 cellForAtRow 重载中

    id 是一个 optional Int(Int?) 数组,你必须解开它

    cell.id_Label.text = id[indexPath.row]!
    

    if let i = id[indexPath.row] {
      cell.id_Label.text = "\(i)"
    }
    else { 
          print("id is nil")
        }
    

关于ios - Swift Tableview 单元格按钮图像根据 tableview 数据更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51733375/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4