选择UITableViewCell时标签背景颜色已更改

时间:2017-10-24 07:03:53

标签: ios iphone uitableview swift3 uilabel

我在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

作为参考,我还添加了截图。 enter image description here

4 个答案:

答案 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