我正在尝试更改自定义表格单元格中视图的颜色,但是有一个插座,可以正常工作。我可以更改此视图的其他属性,例如.isHidden
,但.backgroundColor
似乎不起作用。知道我在做什么错吗?
UIColor
(名称:“绿色”)可在应用程序的其他部分使用,但是我也无法使用它来更改文本的颜色。我分配的颜色类型错误吗?情节提要中的值是否只是覆盖了此内容?如果是这样,我该如何阻止这种情况的发生?将其更改为= .red
也不起作用。
代码如下:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "ChapterCell") as! ChapterCell
smallLabel(cell.chapterLabel, 18)
cell.keepSubviewBackground = true
if chapters[indexPath.row].completed == true {
cell.chapterNumber.isHidden = true
cell.chapterTick.isHidden = false
cell.chapterLabel?.text = chapters[indexPath.row].generateTitle()
cell.chapterLabel?.textColor = UIColor(named: "Green")
cell.chapterNumberContainer.backgroundColor = UIColor(named: "Green")
} else {
cell.chapterLabel?.text = chapters[indexPath.row].generateTitle()
cell.chapterNumber?.text = "#\(indexPath.row + 1)"
cell.chapterTick.isHidden = true
cell.chapterNumber.isHidden = false
cell.chapterNumberContainer.backgroundColor = UIColor(named: "Eggshell")
}
if chapters[indexPath.row].locked == true {
cell.chapterLabel?.alpha = 0.3
cell.chapterNumberContainer?.alpha = 0.3
} else {
cell.chapterLabel?.alpha = 1
cell.chapterNumberContainer?.alpha = 1
}
let cellBGView = UIView()
cellBGView.backgroundColor = UIColor(red: 1.00, green: 1.00, blue: 1.00, alpha: 0.1)
cell.selectedBackgroundView = cellBGView
return cell
}
答案 0 :(得分:1)
检查此内容,这可能是一个问题。 UITableViewCell textLabel color not changing 注意:无法评论声名狼藉,因此将其发布为答案。
答案 1 :(得分:0)
非常感谢所有建议,我最终选择了bsod建议的解决方案,并希望为以后需要此服务的任何人提供更多详细信息。 Rob的解决方案对我不起作用。
在cellForRowAt indexPath方法中,我使用了if语句根据章节是否完成来对自定义单元格进行出队,然后相应地设置其样式。这会重复一些代码,但是必须对单元格进行类型转换才能工作(如果有人可以想到一种更好的方法,那么我可以选择)。
func tableView(_ tableView:UITableView,cellForRowAt indexPath:IndexPath)-> UITableViewCell {
if chapters[indexPath.row].completed == false {
let cell = tableView.dequeueReusableCell(withIdentifier: "RegularCell") as! RegularCell
cell.chapterLabel?.text = chapters[indexPath.row].generateTitle()
cell.chapterNumber?.text = "#\(indexPath.row + 1)"
if chapters[indexPath.row].locked == true {
cell.chapterLabel?.alpha = 0.3
cell.chapterNumberContainer?.alpha = 0.3
} else {
cell.chapterLabel?.alpha = 1
cell.chapterNumberContainer?.alpha = 1
}
let cellBGView = UIView()
cellBGView.backgroundColor = UIColor(red: 1.00, green: 1.00, blue: 1.00, alpha: 0.1)
cell.selectedBackgroundView = cellBGView
smallLabel(cell.chapterLabel, 18)
cell.keepSubviewBackground = true
return cell
} else {
let cell = tableView.dequeueReusableCell(withIdentifier: "CompletedCell") as! CompletedCell
cell.chapterLabel?.text = chapters[indexPath.row].generateTitle()
let cellBGView = UIView()
cellBGView.backgroundColor = UIColor(red: 1.00, green: 1.00, blue: 1.00, alpha: 0.1)
cell.selectedBackgroundView = cellBGView
smallLabel(cell.chapterLabel, 18)
cell.keepSubviewBackground = true
return cell
}