I found out, that UITableView modify contentSize property and I can’t set it by myself.

This is my call stack. After this call contentSize is modified. I don’t want it, because of that I want to hide header, so I need to scroll view a little bit down, and to make it I set contentSize little higher than visible to be able to scroll down a bit.
Any ideas how to hide table header, and keep it hidden after insertion/deletion ? By hide I mean table header initially “hidden” but show up when you scroll to the top.
I’m using NSFetchedResultsController to fetch data with CoreData.
Looks like contentSize is modified by iOS private code just after controllerDidChangeContent is called.
Just for record. This is my solution (searchView is view that I want to hide):