Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UITableView section header inset missing

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.

like image 418
stackOverFlew Avatar asked Dec 19 '14 07:12

stackOverFlew


2 Answers

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.

like image 54
Nero Avatar answered Oct 13 '22 12:10

Nero


[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;
}
like image 5
MoLice Avatar answered Oct 13 '22 13:10

MoLice