UITableView section header inset missing

13.2k views Asked by At

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.

2

There are 2 answers

1
Nero On BEST ANSWER

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.

0
MoLice On

[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;
}