У меня есть этот код, где у меня есть 2 Json массивов, которые я пытаюсь сравнить в своем коде -> all и allUrl. Когда массив all содержит некоторый идентификатор из массива, строка таблицы изображений allUrl должна быть изменена на красный или наоборот зеленый.
В соответствии с этими результатами я хочу изменить текст метки, цвет текста метки, размер шрифта текста метки, но когда Я запускаю приложение, текст надписи все еще "ПРОЙДЕН" и серый, спасибо.
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as UITableViewCell
let listOfStudentsUrl = allUrl.reduce(into: [String:String]()){$0[$1.id] = $1.timestampValue}
// Compare data
listOfStudentsUrl.forEach { key in print(key)
if all[indexPath.row].id == key.key {
cell.textLabel?.text = all[indexPath.row].id
cell.detailTextLabel?.text = all[indexPath.row].timestampValue
cell.imageView!.image = UIImage(named:"red_icon")
cell.isHidden = false
statusLabel.text = "NOT PASSED"
statusLabel.textColor = UIColor.red
statusLabel.font = statusLabel.font.withSize(35)
break
} else {
statusLabel.text = "PASSED"
statusLabel.textColor = UIColor.gray
statusLabel.font = statusLabel.font.withSize(35)
cell.isHidden = true
}
}
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
var rowHeight:CGFloat = 0.0
let listOfStudentsUrl = allUrl.reduce(into: [String:String]()){$0[$1.id] = $1.timestampValue}
for key in listOfStudentsUrl{
if all[indexPath.row].id == key.key {
rowHeight = 49.0
break
} else {
rowHeight = 0.0
}
}
return rowHeight
}
Json формат:
{
"class": {
"studentOne": {
"stringValue": "2020-02-04"
},
"studentTwo ": {
"stringValue": "2020-02-05"
}
},
"createTime": "2020-03-30",
"updateTime": "2020-03-30"
}