Tentei várias das respostas. Alterar as configurações no storyboard causou problemas de ondulação com um menu de sobreposição que aparece da esquerda.
Eu só tenho um UIViewController em branco no storyboard, caso contrário, tudo é gerado programaticamente.
Eu tenho o mesmo problema com um UITableView dentro de um UIView dentro de um UIViewController. Ou seja, os cabeçalhos da seção começam muito para baixo quando o UIViewController é incorporado em um controlador de navegação. Sem o controlador de navegação, tudo funciona bem.
Para corrigir o problema, criei um UILabel e com restrições coloquei a restrição inferior UILabel = a restrição superior do UIView (para que não apareça na tela. Agora com esse controle adicional (o novo Label) o TableView se comporta corretamente.
inputsContainerView.addSubview(titleLabel)
inputsContainerView.addSubview(tableView)
// inputsContainerView
///////////////////////////////////////
inputsContainerView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
inputsContainerView.centerYAnchor.constraint(equalTo: view.centerYAnchor, constant: 0).isActive = true
inputsContainerView.widthAnchor.constraint(equalTo: view.widthAnchor, constant: -40).isActive = true
inputsContainerView.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.7).isActive = true
// tableView
///////////////////////////////////////
tableView.centerXAnchor.constraint(equalTo: inputsContainerView.centerXAnchor).isActive = true
tableView.topAnchor.constraint(equalTo: inputsContainerView.topAnchor).isActive = true
tableView.widthAnchor.constraint(equalTo: inputsContainerView.widthAnchor).isActive = true
tableView.heightAnchor.constraint(equalTo: inputsContainerView.heightAnchor).isActive = true
// titleLabel - inserted to stop bad section header behavior
///////////////////////////////////////
titleLabel.centerXAnchor.constraint(equalTo: inputsContainerView.centerXAnchor).isActive = true
titleLabel.bottomAnchor.constraint(equalTo: inputsContainerView.topAnchor).isActive = true
titleLabel.widthAnchor.constraint(equalTo: inputsContainerView.widthAnchor).isActive = true
titleLabel.heightAnchor.constraint(equalToConstant: 20).isActive = true