I'm trying to write code to modify the background color of a cell based on it's position in the table. While the following code 'works', it only effects cells that are passed to it. Empty cells don't get effected.
- (void)tableView: (UITableView*)tableView willDisplayCell: (UITableViewCell*)cell forRowAtIndexPath: (NSIndexPath*)indexPath
{
if(!indexPath.row%2)
{
cell.backgroundColor = [UIColor colorWithRed: 0.0 green: 0.0 blue: 1.0 alpha: 1.0] ;
NSLog(@"Blue");
}
else{
cell.backgroundColor = [UIColor whiteColor];
NSLog(@"white");
}
cell.textLabel.backgroundColor = [UIColor clearColor];
cell.detailTextLabel.backgroundColor = [UIColor clearColor];
}
How can I effect the rest of the cells that are displayed, if empty, when there are few items in the list?
By 'empty' cells, I mean the placeholder cells that are displayed when your data source doesn't have enough data to fill the entire view given to the table view. For example, if you can fit 10 cells, but only have 5 worth of data, you only ever get handed 5 cells to work with -- the next 5 are empty and as far as I can tell, unaccessable.
I guess you want to change the background only of "empty" cells ... Then you can change the backgroundColor in the InterfaceBuilder of the UITableView. But it will affect all empty cells.
You can also change the separator type.
Also, have a look here : http://www.zenbrains.com/blog/en/2010/06/color-de-fondo-de-celdas-vacias/
EDIT :
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
// 7 depends on how many cell is shown
return ([source count] <= 7) ? 7 : [source count];
}
From : Show blank UITableViewCells in custom UITableView
It should work if the backgroundColor property of the cell's contentView is set, not the backgroundColor of the cell:
cell.contentView.backgroundColor = [UIColor colorWithRed: 0.0 green: 0.0 blue: 1.0 alpha: 1.0] ;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With