Bharat Jagtap Bharat Jagtap - 1 year ago 108
iOS Question

iPhone UITableView : How to remove the spacing between sections in group style table?

I am creating a table view in which there are 10 sections, all having a header view but no cells. So, in short, my table view will display 10 header views only; there will be no cells in any section. Now when I do that there is some space between the section's header views. I want to remove that space. Is that possible? Can you provide me with some hint or work around to achieve this?

Here are the data source methods:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
return 10;

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
return 0;

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
UILabel * label = [[UILabel alloc] init];
label.backgroundColor = [UIColor grayColor];
return label;

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
return 44.0f;

Here is the screenshot of the output:
enter image description here

I have a bit of a complex reason why I am doing it like this, that I wont be able to explain through writing. All I want to do is have no spacing in the section's header views. Thank you in advance.

Answer Source

Try this..

   self.tableView.rowHeight = 0; // in viewdidload
[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone]; // in viewdidload

 -(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
return 0.01f;

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
return <your header height>;

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{
return [[UIView alloc] initWithFrame:CGRectZero];

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
return <your header view>;

Also have table seprator as none.