Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

White space before separator line into my TableView

I have a question about UITableView... I have a UITableViewController and I created a custom cell. When I visualize the tableView I see a little white space before the separator line as you can see into this screenshot:

enter image description here

Why? It is a default visualize? Can I change something to remove this white left padding?

like image 617
Safari Avatar asked Oct 21 '13 16:10

Safari


2 Answers

The leading whitespace is provided by default in iOS 7, even for custom cells.

Checkout this property separatorInset of UITableviewCell to remove/add white spacing at either ends of cell's line separator.

// Remove white space

cell.separatorInset = UIEdgeInsetsZero; 

Alternatively, at UITableView level, you can use this property -

if ([tableView respondsToSelector:@selector(setSeparatorInset:)]) {  // Safety check for below iOS 7      [tableView setSeparatorInset:UIEdgeInsetsZero]; } 

Update - Below code works on iOS 7 and iOS 8:

-(void)viewDidLayoutSubviews {     if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) {         [self.tableView setSeparatorInset:UIEdgeInsetsZero];     }      if ([self.tableView respondsToSelector:@selector(setLayoutMargins:)]) {         [self.tableView setLayoutMargins:UIEdgeInsetsZero];     } }  -(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {     if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {         [cell setSeparatorInset:UIEdgeInsetsZero];     }      if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {         [cell setLayoutMargins:UIEdgeInsetsZero];     } } 
like image 148
Ashok Avatar answered Oct 23 '22 12:10

Ashok


Alternatively, you can also edit this in interface builder (IB):

  1. Go to IB.
  2. Select Table View.
  3. Open "Attribute Inspector" on the right.
  4. Change "Separator Insets" from Default to Custom.
  5. Change the "Left" attribute from 15 to 0.

This has the same effect as @Ashok's answer, but doesn't require writing any code.

Update Works on iOS 7 and 8

Update Works on iOS 9

like image 43
michaelavila Avatar answered Oct 23 '22 11:10

michaelavila