I have an app with storyboard. In one scene I have a tableview with statics cell content. Is possible to change the background selected color to another color out of the def
You don't need to write neither a single line of code to accomplish that. You can do it all using the storyboard. Just do that:
UIView
to your UITableViewCell
and link it to the selectedBackgroundView
property of the cell (to find this property, you will need to drag the line from the "New Reference Outlet"
and release it over the desired UITableViewCell
)UIView
to the desired color of the selected stateYou can do the same thing with the backgroundView
property. Also, you can use a UIImageView
to use a image, instead of the single color background of a UIView
.
Here is a sample file using a custom UIViewController instead of a UITableViewController, but it works on both: http://uxp.com.br/downloads/CustomCell.zip
I had the same problem. The solution has two parts:
1) getting the cells, look at this. 2) changing the background color: you must create a UIView with the background color you need and set it as the selectedBackgroundView of the cell
For instance, I used this code in the viewDidLoad of the uitableviewcontroller:
UIView *backgroundSelectedCell = [[UIView alloc] init];
[backgroundSelectedCell setBackgroundColor:[UIColor colorWithRed:130/256.0 green:169/256.0 blue:171/256.0 alpha:1.0]];
for (int section = 0; section < [self.tableView numberOfSections]; section++)
for (int row = 0; row < [self.tableView numberOfRowsInSection:section]; row++)
{
NSIndexPath* cellPath = [NSIndexPath indexPathForRow:row inSection:section];
UITableViewCell* cell = [self.tableView cellForRowAtIndexPath:cellPath];
[cell setSelectedBackgroundView:backgroundSelectedCell];
}
Here is a solution for those of us using Auto-Layout on X-Code 5+...
For the static cells, you can supposedly change the background color, but it won't work. Each individual cell, however, will automatically have a Content View inside it in IB. If we change the background of this Content View, it changes the cell background.
Just something to add to @Leandro Alves' answer, so we don't have to drag extra UIViews
onto our project!