2015-02-01 4 views
0

У меня есть UITableView с ячейками, я использую нижний колонтитул (высота = 10pt) для каждой секции, заголовок (высота = 64pt) для каждой секции и ячейки (hight = self.view.frame.size.hight - 64 - 10).Загрузить ячейки в UITableView

TableView загружает только первую ячейку, когда я запускаю приложение (потому что вторая ячейка не видна на экране), но я хочу загрузить первую и следующую ячейку. И когда я прокручиваю вторую строку, я хочу загрузить третью ячейку.

Как я могу это достичь?

enter image description here

ответ

1

UITableView delegate methods предоставить вам несколько способов, чтобы отслеживать, в какой ячейке только появился на экране (т.е. tableView:willDisplayCell:forRowAtIndexPath:).

Один из способов сделать это - отслеживать, какая ячейка была отображена, и загрузить +1 и/или -1 индексы вручную.

Примечание: вы не должны загружать UITableViewCells напрямую, а содержимое, которое они должны показывать (в соответствии с M.V.C).

0

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

// Сохраняем все элементы

NSArray *allItems = @[].mutableCopy; 

// загружаем первые два и хранить в allItems

NSDate *first, *second; 
allItems = @[first,second]; 

// Проверяем, какая ячейка видна, когда прокрутки вниз и, если данные были готовы

1) path.section - видимая ячейка

NSIndexPath *path = [tableView indexPathForCell:aCell]; 

2) allItems отсчет количества данных, которые вы загрузили

allItems.count = path.section + 1; 

3) Если allItems.count == path.section, вы должны загрузить следующие данные, который находится рядом текущей видимой.

В этих двух условиях данные должны быть готовы все время. После каждой нагрузки [tableView reload] для отображения.

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