How to remove header and footer space from a UITableView?

前端 未结 9 2137
长情又很酷
长情又很酷 2021-02-02 11:02

I have a UITableView in the grouped style, and only one section. However there is some blank space above and below the table view that is shown when the user scrolls too far. Ho

9条回答
  •  情书的邮戳
    2021-02-02 11:41

    This answer comes quite late, but I hope it helps someone.

    The space is there because of the UITableView's tableHeaderView property. When the the tableHeaderView property is nil Apple defaults a view. So the way around this is to create an empty view with a height greater than 0. Setting this overrides the default view thereby removing the unwanted space.

    This can be done in a Storyboard by dragging a view to the top of a tableView and then setting the height of the view to a value of 1 or greater.

    Or it can be done programmatically with the following code:

    Objective-C:

    CGRect frame = CGRectZero;
    frame.size.height = CGFLOAT_MIN;
    [self.tableView setTableHeaderView:[[UIView alloc] initWithFrame:frame]];
    

    Swift:

    var frame = CGRect.zero
    frame.size.height = .leastNormalMagnitude
    tableView.tableHeaderView = UIView(frame: frame)
    

    Comments

    As others have noted you can use this same solution for footers.


    Sources and Acknowledgements

    See the Documentation for more details on the tableHeaderView property.

    Thanks to @liushuaikobe for verifying using the least positive normal number works.

    My original answer: https://stackoverflow.com/a/22185534/2789144

提交回复
热议问题