我有这段代码:
func tableView(_ tableView: UITableView, didHighlightRowAt indexPath: IndexPath) {
let cell = tableView.cellForRow(at: indexPath)
cell!.contentView.backgroundColor = .blue
cell?.textLabel?.textColor = UIColor.white
var cell2 = tableView.cellForRow(at: indexPath) as! DataTableViewCell
cell2.textLabel.textColor = UIColor.white
}
背景更改工作正常,但文本颜色更改无效。
有谁知道为什么以及如何解决这个问题?
答案 0 :(得分:2)
我认为不是写下这两行:
cell!.textLabel?.textColor = #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
cell?.textLabel?.textColor = UIColor.white
只写一行:
cell.textLabel?.highlightedTextColor = .black
对你有用!
答案 1 :(得分:1)
在DELIMITER //
CREATE TRIGGER delete_2_after_update
AFTER UPDATE
ON statusTable FOR EACH ROW
BEGIN
SLEEP(20);
DELETE FROM mainTable WHERE isSent = 2;
END; //
DELIMITER ;
DataTableViewCell
答案 2 :(得分:1)
尝试以下任何一种方法:
// set highlighted color in `tableView cellForRowAt indexPath`
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
cell?.textLabel?.highlightedTextColor = UIColor.white
}
或试试这个
class CustomCell: UITableViewCell {
// As an alternate of `tableView cellForRowAt indexPath`, label text highlighted color can be set in both these methods of cell - `awakeFromNib` and `prepareForReuse`
override func awakeFromNib() {
super.awakeFromNib()
self.textLabel?.highlightedTextColor = UIColor.white
}
override func prepareForReuse() {
super.prepareForReuse()
self.textLabel?.highlightedTextColor = UIColor.white
}
// or textColor can be directly set here
override func setHighlighted(_ highlighted: Bool, animated: Bool) {
super.setHighlighted(highlighted, animated: animated)
self.textLabel?.textColor = UIColor.white
}
}
答案 3 :(得分:0)
tableView(_:didHighlightRowAt:)
功能是应用的 Controller 域的一部分,而设置颜色是 View 域的一部分(根据模型 - 视图 - 控制器)图案)。为了保持良好的职责分离,您可能需要考虑改变控制器之外的颜色,i。即在细胞本身。为此,您将创建一个简单的UITableViewCell
子类,如下所示:
class MyCell: UITableViewCell {
class var reuseIdentifier: String { return "MyCell" }
override func awakeFromNib() {
super.awakeFromNib()
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
if selected {
textLabel?.textColor = UIColor.white
} else {
textLabel?.textColor = UIColor.black
}
}
}
这样,单元格本身(而不是控制器)处理自己的图形表示,这是推荐的方式。
答案 4 :(得分:-1)
cell.textLabel.highlightedTextColor = [UIColor greencolor];
答案 5 :(得分:-2)
好的,这段代码有效:
override func awakeFromNib () {
super.awakeFromNib ()
// Initialization code
self.titleCell? .xtxtColor = UIColor.black
self.titleCell? .highlightedTextColor = UIColor.white
}
override func setSelected (_ selected: Bool, animated: Bool) {
super.setSelected (selected, animated: animated)
// Configure the view for the selected state
}
override func prepareForReuse () {
super.prepareForReuse ()
self.titleCell? .highlightedTextColor = UIColor.white
}
非常感谢你的帮助:))