I'm trying to change the background color of UITableViewHeaderFooterView. Although the view is appearing, the background color remains the default color. I'm getting a log from xcode saying:
Setting the background color on UITableViewHeaderFooterView has been
deprecated. Please use contentView.backgroundColor instead.
However, none of the following options work:
myTableViewHeaderFooterView.contentView.backgroundColor = [UIColor blackColor];
myTableViewHeaderFooterView.backgroundView.backgroundColor = [UIColor blackColor];
myTableViewHeaderFooterView.backgroundColor = [UIColor blackColor];
I've also tried changing the background color of the view in the xib file.
Any suggestions? Thanks.
Best Answer
iOS 8, 9, 10, 11...
The only way to set any color (with any alpha) is to use
backgroundView
:Swift
Obj-C
Responses to Comments
None of these other options reliably work (despite the comments below)
the
backgroundView
is resized automatically. (No need to add constraints)Control alpha with
UIColor(white: 0.5, alpha: 0.5)
orbackgroundView.alpha = 0.5
.(of course, any color will do)
When using XIB, make root view a
UITableViewHeaderFooterView
and associate thebackgroundView
programmatically:Register with:
Load with:
↻ replay animation
► Find this solution on GitHub and additional details on Swift Recipes.