选择UILabel
时,有许多示例可以更改UITableViewCell
文字的颜色。但所有例子都用以下行解释
if cell.selected {
cell.txtLabel1.textColor = UIColor.redColor()
}else {
cell.txtLabel1.textColor = UIColor.blackColor()
}
但设置 cell.txtLabel1.highlightedTextColor = UIColor.redColor()非常简单。粗体线是否会导致任何问题以及为什么其他示例没有粗体线实现?
没有设置isHighlighted UILabel也会在选择UITableViewCell时更改文本的颜色。代码粘贴在下面以供参考
class MenuViewCell: UITableViewCell {
@IBOutlet weak var lblTitle:UILabel?
@IBOutlet weak var imgIcon:UIImageView?
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
let selectedView = UIView()
selectedView.backgroundColor = UIColor(colorLiteralRed: 244.0/255.0, green: 244.0/255.0, blue: 245.0/255.0, alpha: 1)
selectedBackgroundView = selectedView
lblTitle?.highlightedTextColor = UIColor(colorLiteralRed: 224.0/255.0, green: 121.0/255.0, blue: 43.0/255.0, alpha: 1)
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
答案 0 :(得分:1)
粗体线会导致任何问题。
我在UILabel
上看到使用此属性时没有任何问题,如果您阅读了此属性的文档,则说明:
只要isHighlighted属性设置为true,此颜色就会自动应用于标签。
这是最有效的问题,但当然使用情况会有所不同,如下:
UILabel.highlightedTextColor = UIColor.red
切换isHighlighted
UILabel.isHighlighted = cell.isSelected
<强>更新强>
要在设置UILabel.isHighlighted
时自动更改cell.isSelected
,您可以继承UITableViewCell
,如下所示:
class MyTableViewCell: UITableViewCell {
@IBOutlet var label = UILabel!
override var isSelected: Bool {
didSet {
label.isHighlighted = isSelected
}
}
}