Первые видимые миниатюры в моем табличном представлении не отображаются - на примере LazyTableImages в качестве основы - PullRequest
0 голосов
/ 05 апреля 2011

Я адаптировал код из примера LazyTableImages на developer.apple.com, и все это работает, за исключением того, что не удалось загрузить изображения для первых 4 строк (при загрузке отображаются 4 строки). Когда я прокручиваю вниз и останавливаюсь, изображения новых строк загружаются правильно, а когда я прокручиваю назад вверх, первые 4 изображения также загружаются правильно. Так что проблема в начальной загрузке.

Я использую контроллер выборки для загрузки данных таблицы, и она считывает данные из базы данных CoreData. В моем методе cellForRowAtIndexPath я добавил дополнительную проверку следующим образом:

if (self.screeningsTable.dragging == NO && 
    self.screeningsTable.decelerating == NO && movie.MovieID) {
  [self startImageDownload:movie forIndexPath:indexPath];
}

чтобы проверить, действительно ли в строке есть действительный объект. Поэтому для загрузки изображений первых строк я добавил [self loadImagesForOnscreenRows] после того, как данные были загружены из базы данных, но это не работает.

Можете ли вы сказать, куда я должен поместить [self loadImagesForOnscreenRows], чтобы правильно загрузить первые изображения?

1 Ответ

0 голосов
/ 07 апреля 2011

Я обнаружил проблему - метод reViewData TableView не перезагружался достаточно быстро, поэтому, когда начался [self loadImagesForOnscreenRows], ячеек еще не было. Таким образом, я заменил [myTable reloadData]; на [myTable performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:YES];, который добился цели. Надеюсь, это кому-нибудь поможет.

...