-1
通过在我的tableview函数中使用函数来简化我的代码。我认为这是可能的,但我不知道如何开始。我试图创建一个函数来执行我想要的操作,但我无法弄清楚如何在我的函数中调用自定义单元格变量。使用调用自定义tableview单元格的函数简化tableview代码
这里是我想简化代码:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if indexPath.section == 0 {
// PART 1
let cell = tableView.dequeueReusableCell(withIdentifier: "CustomCell1", for: indexPath) as! PaydayDetailCellA1
let (jobDescription, day1, day2, day3, day4, day5, day6, day7, _) = tempPaydayDailyJobs[indexPath.row]
cell.tallyView.layer.cornerRadius = cell.tallyView.bounds.height/6.4
cell.tallyView.layer.masksToBounds = true
cell.tallyView.layer.borderColor = UIColor.lightGray.cgColor
cell.tallyView.layer.borderWidth = 0.5
cell.jobDesc.text = jobDescription
cell.dayColor1.text = day1
switch day1 {
case "1":
cell.dayColor1.text = ""
cell.dayColor1.backgroundColor = UIColor(red: 141/255, green: 198/255, blue: 63/255, alpha: 1)
case "X":
cell.dayColor1.text = ""
cell.dayColor1.backgroundColor = UIColor.red
case "E":
cell.dayColor1.backgroundColor = UIColor.lightGray
default:
cell.dayColor1.backgroundColor = UIColor(red: 141/255, green: 198/255, blue: 63/255, alpha: 1)
cell.dayColor1.textColor = UIColor.white
}
cell.dayColor2.text = day2
switch day2 {
case "1":
cell.dayColor2.text = ""
cell.dayColor2.backgroundColor = UIColor(red: 141/255, green: 198/255, blue: 63/255, alpha: 1)
case "X":
cell.dayColor2.text = ""
cell.dayColor2.backgroundColor = UIColor.red
case "E":
cell.dayColor2.backgroundColor = UIColor.lightGray
default:
cell.dayColor2.backgroundColor = UIColor(red: 141/255, green: 198/255, blue: 63/255, alpha: 1)
cell.dayColor2.textColor = UIColor.white
}
cell.dayColor3.text = day3
switch day3 {
case "1":
cell.dayColor3.text = ""
cell.dayColor3.backgroundColor = UIColor(red: 141/255, green: 198/255, blue: 63/255, alpha: 1)
case "X":
cell.dayColor3.text = ""
cell.dayColor3.backgroundColor = UIColor.red
case "E":
cell.dayColor3.backgroundColor = UIColor.lightGray
default:
cell.dayColor3.backgroundColor = UIColor(red: 141/255, green: 198/255, blue: 63/255, alpha: 1)
cell.dayColor3.textColor = UIColor.white
}
cell.dayColor4.text = day4
switch day4 {
case "1":
cell.dayColor4.text = ""
cell.dayColor4.backgroundColor = UIColor(red: 141/255, green: 198/255, blue: 63/255, alpha: 1)
case "X":
cell.dayColor4.text = ""
cell.dayColor4.backgroundColor = UIColor.red
case "E":
cell.dayColor4.backgroundColor = UIColor.lightGray
default:
cell.dayColor4.backgroundColor = UIColor(red: 141/255, green: 198/255, blue: 63/255, alpha: 1)
cell.dayColor4.textColor = UIColor.white
}
cell.dayColor5.text = day5
switch day5 {
case "1":
cell.dayColor5.text = ""
cell.dayColor5.backgroundColor = UIColor(red: 141/255, green: 198/255, blue: 63/255, alpha: 1)
case "X":
cell.dayColor5.text = ""
cell.dayColor5.backgroundColor = UIColor.red
case "E":
cell.dayColor5.backgroundColor = UIColor.lightGray
default:
cell.dayColor5.backgroundColor = UIColor(red: 141/255, green: 198/255, blue: 63/255, alpha: 1)
cell.dayColor5.textColor = UIColor.white
}
cell.dayColor6.text = day6
switch day6 {
case "1":
cell.dayColor6.text = ""
cell.dayColor6.backgroundColor = UIColor(red: 141/255, green: 198/255, blue: 63/255, alpha: 1)
case "X":
cell.dayColor6.text = ""
cell.dayColor6.backgroundColor = UIColor.red
case "E":
cell.dayColor6.backgroundColor = UIColor.lightGray
default:
cell.dayColor6.backgroundColor = UIColor(red: 141/255, green: 198/255, blue: 63/255, alpha: 1)
cell.dayColor6.textColor = UIColor.white
}
cell.dayColor7.text = day7
switch day7 {
case "1":
cell.dayColor7.text = ""
cell.dayColor7.backgroundColor = UIColor(red: 141/255, green: 198/255, blue: 63/255, alpha: 1)
case "X":
cell.dayColor7.text = ""
cell.dayColor7.backgroundColor = UIColor.red
case "E":
cell.dayColor7.backgroundColor = UIColor.lightGray
default:
cell.dayColor7.backgroundColor = UIColor(red: 141/255, green: 198/255, blue: 63/255, alpha: 1)
cell.dayColor7.textColor = UIColor.white
}
return cell
} else {
// PART 2
let cell2 = tableView.dequeueReusableCell(withIdentifier: "CustomCell2", for: indexPath) as! PaydayDetailCellA2
let (_, pointAmount) = tempDailyChoresSummary[indexPath.row]
cell2.dailyChoresNumber.text = "\(pointAmount)"
cell2.jobConsistencyBonusNumber.text = "\(pointAmount)"
cell2.previousUnpaidAmountsNumber.text = "\(pointAmount)"
cell2.dailyChoresSubtotalNumber.text = "\(pointAmount)"
return cell2
}
}
我有一个自定义的tableview细胞内标签的块。我希望标签的背景颜色根据外部数组中的数据改变颜色。我附上了它看起来像的图片(如果有帮助的话)。 Here is the picture of the tableview with colored labels.
还是有更简单的方法来做我想做的事情吗?
谢谢,但作为以前的用户注意到,我发布了错误的代码,所以你的答案虽然很好,但并不能解决我的问题。请参阅更新的代码。 (我可能在发布答案的同一时间发布了它,因此您从未看过更新后的代码)。 –