2012-05-16 2 views
3

У меня есть жестко закодированная ячейка «загрузка» в качестве последней ячейки моего представления таблицы, когда она сгенерирована Я вызываю некоторые методы для загрузки в новые данные из веб-службы, и когда я получаю ответ I сохранить данные, отправить уведомление и вызвать reloadData в моем представлении таблицы.ContentOffset on Dynamic UITableView

Я хочу сделать то же самое, но для первой ячейки моего стола.

Мой стол работает в режиме времени, поэтому прокрутка вниз показывает вам элементы из более поздних дат, и идея состоит в том, чтобы позволить пользователю прокручиваться выше и загружать более ранние элементы.

Кажется, что я не могу с успехом установить начальное смещение, чтобы скрыть эту загрузочную ячейку, потому что если она будет показана, она начнет загружать ранние данные, конечно. Мне известно о scrollToRowAtIndexPath:atScrollPosition:animated:, но я не могу найти подходящее место для его вызова (с указателем путь: 1: 0 строка 1 раздел 0).

Как я уже упоминал ранее, мне нужно установить этот видимый раздел перед вызовом вызываемых ячеек.

Кто-нибудь пробовал такую ​​ячейку в начале настольного просмотра?

Как установить начальную видимую часть моего представления таблицы перед тем, как первые ячейки будут вызываться для вызова?

Должен ли я делать что-то более интересное здесь? Как и у tableviewHeader, и когда это показано, я вставляю строку по пути индекса 0: 0, которая является загрузчиком, и удаляю ее после перезагрузки таблицы?

ответ

5

Использовано contentInset, а не смещено в viewDidLoad.

[self.tableView setContentInset:UIEdgeInsetsMake(-50,0,0,0)]; 

Когда строка с индексом пути [0,0] генерируется сбросить вставку, это происходит в tableView:cellForRoWAtIndexPath:

[self.tableView setContentInset:UIEdgeInsetsMake(0,0,0,0)]; 

Каждый раз перед сообщениями reloadData на виде таблицы я положил эту вставку обратно на :

- (void)reload{ 
    [self.tableView setContentInset:UIEdgeInsetsMake(-50,0,0,0)]; 
    [self.tableView reloadData]; 
} 

Это означает, что моя нагрузка сотовой ячейки только когда-либо сидел на экране, когда он смотрел, когда новые данные приходит и таблица перезагружается я положил смещение назад.

Смежные вопросы