开发者

Programmatically remove the header of UITableView and automatically resizes the content to fill in the removed area

I have added a UIButton in the header section of the UITableView via the interface builder and would like to remove the access to the button in certain cases. I have tried to use the .hidden = TRUE property but it just hides the button from the view, leaving a white space behind. How do I programmatically remove the header of UITableView and hav开发者_StackOverflow社区e the table's content automatically resizes to fill in the removed header area?


If you want to remove the table's header view, just set the myTable.tableHeaderView property to nil. If what you have is actually a section header, then you need to return nil from the viewForHeaderInSection method and call [myTableView reloadData]


You could also do:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    return 0.0;
}

This seems to work for my (single) section header and avoids the need for reloadData.

Note that:

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

is still called, but its return value seems to be ignored.


I created a boolean property called removeHeader and then when ever I want to remove my header I call:

func removeSectionHeader() {
        removeHeader = true
        self.tableView.reloadData()
    }

Then when my tableView reloads it will call this tableView delegate method:

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        if removeHeader {
            return 0.0
        } else {
            let height = self.tableView.sectionHeaderHeight
            return height
        }
    }


Check if your tableView has a grouped style, in that case a white space appears at the top of the table. Change the style to plain and that blank space will be removed.

Programmatically remove the header of UITableView and automatically resizes the content to fill in the removed area

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜