2016-01-17 2 views
0

У меня возникла ситуация, когда поток получил новые модели с сервера, и я пытаюсь перезагрузить все ячейки в моем UICollectionViewController.UICollectionView и перезагрузка UITableView вызывает переупорядочивание ячеек

Я называю collectionView.reloadData() (на основном потоке), и вдруг все клетки меняют свои позиции (значение, я могу видеть содержимое ячеек меняет свою позицию от одной клетки к другой)

Ни одно из следующих работ :

  1. Сортировка источника данных в том же порядке
  2. Сохранение клеток в пользовательский словарь, и реванша данные к клеткам
  3. self.collectionView!.reloadItemsAtIndexPaths(indexPaths) где indexPaths содержат все Curr лор пути
  4. перегрузочные только visiable клетки с self.collectionView!.visibleCells()

Что я здесь отсутствует?

+2

«Я пробовал все возможные ». Что вы пробовали? Где ваш код? Как мы можем вам помочь? Должны ли мы догадываться, что вы написали? – jcaron

+0

@jcaron - если вы можете остановить меня и снова открыть этот вопрос - я дам полный и подробный ответ, включая все мои выводы, решение и пример –

ответ

1

Если сервер вернул правильные упорядоченные данные, я боюсь, что вы не очистили данные в ячейках. Нужно установить значение imageView.image, когда вы не загрузили данные изображения или не было изображения в данных. Если вы настроили ячейку в UITableViewDataSource, вы должны сделать что-то вроде этого:

if(data.image != nil) { 
    imageView.image = data.image; 
} else { 
    imageView.image = nil; 
} 

Если вы сделали это в классе вида клеток пользовательских таблиц, сделать так:

-(void)prepareForReuse { 
    imageView.image = nil 
} 
+0

Im немного утерян здесь У меня есть изображение, ярлык и цвет фона для каждой ячейки. когда я должен их удалить? –

+0

@YoavR. Обновлен мой ответ. – Lumialxk

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