#ios
#iOS
Вопрос:
Мы используем haneke для кэша изображений, при настройке изображений для удобного просмотра он вызывает сервер, чтобы получить изображение и установить для просмотра изображения в строке. Но из-за задержки при вызове сервера для получения изображения 1 строка изображений назначается 2-й строке, как будто она неуместна, не могли бы вы предложить лучший способ обработки UITableViewCell в этом сценарии.
Фрагмент кода для подготовки ячейки:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let contact = searchedResults[indexPath.row]
let cell = tableView.dequeueReusableCellWithIdentifier("ConversationContactCell", forIndexPath: indexPath) as! ConversationContactCell
cell.contactImage.image = nil
ImageCache.getInstance()?.getUserImage(contact.contactImageURI, gender: contact.contactGender, imageRetrievalHandler: { (image) in
cell.contactImage.image = image
})
cell.contactName.text = contact.contactName
return cell
}
Комментарии:
1. можете ли вы показать проверенный код
2. пожалуйста, опубликуйте свой код для создания ячейки и саму ячейку.
3. Фрагмент кода для подготовки ячейки:
4. Любые предложения
Ответ №1:
Похоже, что ваши изображения используются повторно, когда ячейки удаляются из очереди, а затем обновляются, когда изображения ячейки загружаются из Интернета.
Вы должны очистить изображение в своем классе ConversationContactCell следующим образом:
override func prepareForReuse() {
super.prepareForReuse()
contactImage.image = nil
}
Это приведет к очистке изображений при каждом повторном использовании ячейки. Дайте мне знать, если это поможет!