我在UITableViewCell中添加了自定义标签。它的背景颜色是红色,字体是白色。当我选择任何单元格时,所选单元格的标签背景颜色变为灰色。
供参考,我正在添加代码
let lblUnreadCount = cell?.viewWithTag(3) as! UILabel
let size:CGFloat = 20.0
lblUnreadCount.bounds = CGRect(x: 0.0, y: 0.0, width: 28.0, height: 20.0)
lblUnreadCount.layer.cornerRadius = size / 2
lblUnreadCount.layer.borderWidth = 1.0
lblUnreadCount.layer.backgroundColor = UIColor.red.cgColor
lblUnreadCount.layer.borderColor = UIColor.red.cgColor
答案 0 :(得分:1)
标签的背景不是正在改变,而是细胞本身。在cellForRow
方法中,在dequeued
单元格之后,请使用此
cell.selectionStyle = .none
答案 1 :(得分:1)
似乎将单元格样式设置为.none不是OP想要的,因为它实际上会在选中时清除单元格的突出显示颜色。
我发现这样做有点棘手(清除TextLabel bg颜色并将bg颜色设置为其图层):
// Note that cell background color must be cleared **before** setting layer color
lblUnreadCount.backgroundColor = UIColor.clear
lblUnreadCount.layer.backgroundColor = UIColor.red.cgColor
这样,当选择并突出显示单元格时,您将能够保持文本标签的bg颜色(在单元格内)不变。
答案 2 :(得分:0)
1.set选择样式无
UITableViewCell
|
|----- UIView
|
|-----UIImageView-> eg:Message icon
|-----Title Label-> eg:Message
|-----Count Label-> red background
2.选择单元格后,您必须更改UIView背景颜色(灰色)。
答案 3 :(得分:0)
在UITableViewCell内设置标签的背景颜色。在上面的代码中设置标签的图层背景颜色。
lblUnreadCount.backgroundColor = UIColor.red.cgColor