iosuitableviewuikitios15

How to remove section header separator in iOS 15


In iOS 15, UITableView adds a separator between a section header and the first cell:

enter image description here

How can I hide or remove that separator?

A few notes:

  1. The header is a custom view returned from tableView(_:viewForHeaderInSection:).
  2. When looking at the view debugger, I can see that the extra separator is actually a subview of the first cell, which now has a top and a bottom separator.
  3. Other than setting tableView.separatorInset to change the inset of cell separators, this is a completely standard table view with no customizations.

Solution

  • Option 1: Maybe by using UITableViewCellSeparatorStyleNone with the table view and replacing the system background view of the cell with a custom view which only features a bottom line?

    Option 2: Using hint from https://developer.apple.com/forums/thread/684706

    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
    #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 150000 // only Xcode 13+ needs and can compile this
        if (@available(iOS 15.0, *)) {
            [self.tableview setSectionHeaderTopPadding:0.0f];
        }
    #endif
    }