I have created the following UITableViewCell
class SeasonTableViewCell: UITableViewCell {
static let identifier = "SeasonTableViewCell"
private var seasonLabel: UILabel = {
let label = UILabel()
label.numberOfLines = 1
label.textAlignment = .center
return label
}()
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
contentView.backgroundColor = .clear
[seasonLabel].forEach { contentView.addSubview($0) }
setConstraints()
}
...
}
However, the cells render with the default background. If however I try to use any other color:
contentView.backgroundColor = .red
This does work. It’s just with .clear that it doesn’t work.
I have also tried the following when dequeueing the cell:
cell.backgroundView?.backgroundColor = .clear
But this doesn’t work either.
How can I make the cell have a transparent background?
>Solution :
As the comment says self.backgroundColor = UIColor.clear is enough in init at TableviewCell to give background color to cell.
If your main color is in Viewcontroller's view make
tableview.backgroundColor = .clear // in view
and
self.backgroundColor = UIColor.clear // in cell init class
If your main color is in tableview’s background, just make
self.backgroundColor = UIColor.clear // in cell init class
I don’t see inside the setConstraints method but I think the label covers the whole cell and if the label has a background color this may result in not getting the result you want.Don’t ignore it either