Один из экранов в моем приложении для iPhone - это UITableView, у которого есть строка поиска в заголовке таблицы. Я хочу, чтобы панель поиска была скрыта, пока пользователь не потянет ее вниз, поэтому я использую эту строку в своем методе viewDidLoad:
[self.tableView setContentOffset:CGPointMake(0,40) animated:NO];
Это правильно отображает tableView с прокруткой заголовка в верхней части экрана.
Моя проблема возникает, когда я пытаюсь удалить строку, используя этот метод:
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:myIndexPath] withRowAnimation:UITableViewRowAnimationRight];
Когда эта строка выполняется, она правильно сдвигает строку с правой стороны экрана. Если таблица содержит только несколько строк, заголовок таблицы (с моей строкой поиска) прокручивается вниз, чтобы заполнить пространство, освобождаемое вновь удаленной строкой. Я не хочу, чтобы это случилось. Я хочу, чтобы заголовок оставался скрытым, пока пользователь не прокрутит его пальцем вниз.
Если в tableView достаточно строк, чтобы заполнить окно, таблица заполняется снизу, а заголовок остается скрытым. Проблема возникает только тогда, когда экран не полностью заполнен строками.
Есть идеи, как заставить UITableView не отображать заголовок таблицы при удалении строки?
Добавление: я обнаружил, что то же самое происходит, когда я переводил UITableViewController в режим редактирования с использованием кода, подобного этому:
[self setEditing:NO animated:YES];
Переходит в режим редактирования, отображает красные кружки «удалить строку» и отображает заголовок таблицы. Может быть, это что-то с анимацией.