Начиная с iOS 5, вам также нужно реализовать
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
В дополнение к
- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
В противном случае это не сработает.
От Ссылка Apple
Возвращаемый объект может быть объектом UILabel или UIImageView, а также пользовательским представлением. Этот метод работает правильно только тогда, когда tableView: heightForHeaderInSection: также реализован.