I have a UITableView
that uses a variety of custom UITableViewCells
.
I\'d like to be able to have one of these table cells appear with a di
Disclaimer - this worked for me at the time under my specific circumstances. It is not guaranteed to work, it appears to no longer work, and I now advise you subclass UITableViewCell
.
Came across this post when looking to set the UITableView.separatorColor
differently across groups/sections in a grouped UITableView
.
You don't necessarily need to subclass UITableViewCell
. You can try setting tableView.separatorColor
on each call to tableView:cellForRowAtIndexPath:
.
For example, if you want the separator to be visible with the default color in the first section, visible in the first row/cell of the second section, and invisible in the rest of the rows in the second section, you can do the following:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
switch (indexPath.section) {
case 0:
tableView.separatorColor = nil;
break;
case 1:
switch (indexPath.row) {
case 0:
tableView.separatorColor = nil;
break;
case 1:
tableView.separatorColor = [UIColor clearColor];
break;
default:
break;
}
break;
default:
break;
}
Starting from iOS 7 something like this seems to be working fine:
UITableViewCellSeparatorStyleSingleLine
on your UITableViewcell.separatorInset = UIEdgeInsetsMake(0, 0, 0, 10000);
cell.backgroundColor = [UIColor greenColor];
Now separator will have the same color as your cell's backgroundcolor. Note that all this can be set on your cell's xib file without any code. Also note that you probably want to change cell's contentView's background color to something different than default (probably white) so green color will appear only on the separator line.
The tableView.separatorColor
is global across all cells.
If you want to further customize these colors, your best bet would be to set separatorStyle
property to UITableViewCellSeparatorStyleNone
, and override UITableViewCell
.
Then you can draw your own custom seperator in the contentView
of the Cell
and customize it.