I am currently trying to put a UITableView
in a different location rather than at the top of my view controller. With this said, it is trying to add the header
Was having the same issue. I solved it by adding the following to viewDidLoad.
self.extendedLayoutIncludesOpaqueBars = true
In my case I was using a container view.(Main View --> Contaner View --> UITableView)
The extra space at the top, I think, is like space of the device notification bar (where the time is displayed, the battery). I really do, it's not an assumption.
What I did was from the UI Builder:
In my case, i was using ContainerViewController and putting UITableViewController in it. After removing ContainerViewController. Issues goes away.
In 2017, what is working for me is simply this one line
navigationController?.navigationBar.isTranslucent = false
I have no idea why that would even affect it. Perhaps someone could explain. But I'm pretty sure this is the answer most people would look for.
NONE of the above helped me. but doing this did help:
self.tableView.contentInset = UIEdgeInsetsMake(-64, 0, 0, 0)
instead of '-64' you can put any other number depending on the height of your navigation bar.
As long as UITableView is not the first subview of the view controller, the empty space will not appear.
Solution: Add a hidden/clear view object (views, labels, button, etc.) as the first subview of the view controller (at the same level as the UITableView but before it).