Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Remove separator line for only one cell

I'm trying to remove the separator for one UITableViewCell. I did the following:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {     UITableViewCell *cell;     cell = [super tableView:tableView cellForRowAtIndexPath:indexPath];      if (indexPath.row == 1)         cell.separatorInset = UIEdgeInsetsZero;      return cell; } 

(It's static cells.) When I run the app. The separator line is still there. How can I remove the separator line for one cell?

like image 306
Jessica Avatar asked Jul 01 '15 19:07

Jessica


1 Answers

On iOS 8 you need to use:

cell.layoutMargins = UIEdgeInsetsZero 

If you want to be compatible with iOS 7 as well you should do following:

if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {     [cell setSeparatorInset:UIEdgeInsetsZero]; }  if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {     [cell setLayoutMargins:UIEdgeInsetsZero]; } 

ADD: If previous didn't work - use this. (from answer below)

 cell.separatorInset = UIEdgeInsetsMake(0, CGFLOAT_MAX, 0, 0); 

If none of above worked, you can do:

self.tableView.separatorColor = [UIColor clearColor];

but this will leave 1 pixel empty space, not really removing a line, more making it transparent.

like image 191
Grzegorz Krukowski Avatar answered Sep 18 '22 07:09

Grzegorz Krukowski