I ran into the same problem and turned out to be a pretty elegant solution:
You place your search bar in a specific section of your table (say, index 0). You place the table data in another section (say index 1).
When the text of your search bar changes, you can update your model and then simply call:
NSIndexSet *indexSet = [NSIndexSet indexSetWithIndex:1]; [self.tableView reloadSections:indexSet withRowAnimation:UITableViewRowAnimationAutomatic];
That way, your keyboard will still be active, your search bar will still be the first responder, and you will get a nice built-in table animation!
source share