How do I make this UITableView
and it's cells clear in Swift 3.
I have gone through the previous threads but I am still getting a white background.
As you can see from my code I have tried the various methods mentioned:
override func viewDidLoad() {
self.communitiesTableView.delegate = self
self.communitiesTableView.dataSource = self
let background = CAGradientLayer().bespokeColor()
background.frame = self.view.bounds
// view.addSubview(background)
super.viewDidLoad()
// Do any additional setup after loading the view.
}
and in my cell table function:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let title = self.communities[indexPath.row]
let cell = UITableViewCell()
cell.textLabel?.text = title
cell.textLabel?.font = UIFont(name: "Avenir", size: 12)
cell.textLabel?.textColor = UIColor.red
cell.textLabel?.backgroundColor = UIColor.clear
cell.contentView.backgroundColor = UIColor.clear
communitiesTableView.backgroundColor = UIColor.clear
cell.layer.backgroundColor = UIColor.clear.cgColor
return cell
}
This gif shows the problem - notice the black lines showing the table is present just not populated (as no-one is logged in)
But for a second it is clear, then turns white. Where am I going wrong?
This is from another post that I have found:
Apple document says
... In iOS 7, cells have a white background by default; in earlier versions of iOS, cells inherit the background color of the enclosing table view. If you want to change the background color of a cell, do so in the tableView:willDisplayCell:forRowAtIndexPath: method of your table view delegate.
You might need to use willDisplayCell UITableView delegate method to have a transparent background for your table view .
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cellforRowAtIndexPath:(NSIndexPath *)indexPath
{
[cell setBackgroundColor:[UIColor clearColor]];
}
How do I apply the code above as it says its for iOS 7?
cell.textLabel.backgroundColor = UIColor.clear
. If the issue persists, there is another view involved. In this case, show how the view and the cell is stacked in storyboard. This:cell.isOpaque = false
is not needed, the views alpha has nothing to do with your issue. – shallowThoughtcell.backgroundColor = .clear
incellForRowAt indexPath
. ` – Nirav D