I searched a solution for this for weeks already and today, I finally made it work. The solution is so simple, I can't believe I haven't found that earlier.
I was using a normal UIViewController with a UITableView. My layout constraints were setup so that the UITableView was pinned with 0 to the bottom and top layout guides like so:
Once I changed that and pinned the UITableView to the Superview with 0 to all edges, it magically started to work:
I didn't even have to setup anything else. I hope so much that this does the fix for you as well because its just so annoying...
If the above doesn't work, than you need in addition to it, set
self.extendedLayoutIncludesOpaqueBars = YES;
or check the "Extend Edges / Under Opque Bar" in the Storyboard