Nie jestem pewien, czy podążam za tobą, ale myślę, że mam te same kłopoty. W moim przypadku muszę dać trochę miejsca na ADBannerView u góry ekranu, więc to, co zrobiłem, było w metodzie viewDidLoad, którą dodałem:
[self.tableView setContentInset:UIEdgeInsetsMake(50,0,0,0)]
przyjmowane wartości to UIEdgeInsetsMake (góra, lewo, dół, prawo).
Alternatywnie to samo z Swift:
self.tableView.contentInset = UIEdgeInsetsMake(50, 0, 0, 0)
Swift 4.2:
self.tableView.contentInset = UIEdgeInsets(top: 50, left: 0, bottom: 0, right: 0)