11

How do I fix the problem illustrated in the image?

The section header for the tableview is missing an inset.

section header for the tableview is missing an inset.

stackOverFlew
  • 1,479
  • 2
  • 31
  • 58

2 Answers2

20

You probably set the separator insets to 0, either in code or in the Interface Builder (can be found in the Attributes inspector:

Separator insets set to 0

This also causes the titles to have no inset. The default values are 15 for left and 0 for right.

Nero
  • 1,295
  • 1
  • 16
  • 23
  • 1
    thanks! I wasn't doing that in IB, but i was calling """if ([self.tableView respondsToSelector:@selector(separatorInset)]) { [self.tableView setSeparatorInset:UIEdgeInsetsZero]; }""" – stackOverFlew Dec 19 '14 at 09:29
5

[Could you post your code of UITableViewDelegate? In UITableView, there is no API for you to set this insets in section header, so you could return a custom UIView in tableView:viewForHeaderInSection: then set the layout you want.

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
    UIView *headerView = [UIView alloc] init];
    UILabel *headerLabel = [UILabel alloc] init];
    headerLabel.text = @"xxx";
    [headerLabel sizeToFit];
    headerLabel.frame = CGRectMake(20, 0, CGRectGetWidth(headerLabel.frame), CGRectGetHeight(headerLabel.frame));
    [headerView addSubview:headerLabel];
    headerView.frame = CGRectMake(0, 0, CGRectGetWidth(tableView.bounds), CGRectGetHeight(headerLabel.frame));
    return headerView;
}
MoLice
  • 301
  • 2
  • 7