Фоновое изображение UITableViewCell не всегда отображается

#iphone #ios #uitableview

#iPhone #iOS #uitableview

Вопрос:

Я устанавливаю фон для просмотра таблицы, используя изображение:

 cell.backgroundView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"my_image.png"]] autorelease];
  

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

Остальные ячейки устанавливаются без вызова cellForRowAtIndexPath. Откуда они берутся?

Комментарии:

1. Можете ли вы опубликовать свой метод cellForRowAtIndexPath?

2. Вы расстроены появлением пустых ячеек или вы расстроены отсутствием фона для пустых ячеек? Каков ваш точный вопрос и как уже прокомментировал @jbat100, ОПУБЛИКУЙТЕ СВОЙ метод cellForRowAtIndexPath.

Ответ №1:

Попробуйте это

cell.backgroundView.contentView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"my_image.png"]] autorelease];

Ответ №2:

выполните следующее

 willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSindexPath *)indexpath
{
  cell.backgroundview = view;
 }
  

теперь это будет работать

Ответ №3:

Попробуйте удалить авторелиз из кода

Комментарии:

1. Это не проблема, backgroundView сохраняется, поэтому его следует освободить, поскольку есть выделение.

2. cell.backgroundView — это свойство сохранения, а не автоматическое освобождение, которое приведет к утечке.

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