In my app I have a UISearchBar under UINavigationBar so it is always visible to user. In that case I had to set contentInset with extr
UISearchBar
UINavigationBar
contentInset
In Swift:
override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() self.tableView.contentInset = UIEdgeInsets(top: 108, left: 0, bottom: 0, right: 0) }