У меня есть эта проблема, когда значения данных в моем прототипе динамического UITableViewCell сбрасываются при прокрутке вверх или вниз.UITableViewCell - сброс содержимого при прокрутке вверх или вниз
Я проверяю, что ячейка равна нулю, как предложено в других потоках, поскольку ячейки повторно используются, но выполнение никогда не ударяет, если.
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
// Currency formatter
let formatter = NSNumberFormatter()
formatter.numberStyle = NSNumberFormatterStyle.CurrencyStyle
formatter.locale = NSLocale(localeIdentifier: "el-GR")
// Table view cells are reused and should be dequeued using a cell identifier.
let cellIdentifier = "MenuItemTableViewCell"
var cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! MenuItemTableViewCell
if cell.isEqual(nil) {
cell = UITableViewCell(style: .Default, reuseIdentifier: "MenuItemTableViewCell") as! MenuItemTableViewCell
}
// Match category (section) with items from data source
let itemsPerSection = items.filter({ $0.category == self.categories[indexPath.section] })
let item = itemsPerSection[indexPath.row]
// cell data
cell.cellTitle.text = item.name + " " + formatter.stringFromNumber(item.price)!
cell.cellDescription.text = item.description
Любая помощь пожалуйста?
С уважением, Polis
Является ли содержимое ячейки сброшено, пока оно находится на экране? Что именно происходит? Этот метод кажется прекрасным, какой другой метод реализован, который взаимодействует с табличным представлением? –
Да, сброс происходит, когда я прокручиваю вниз, а затем снова создаю резервную копию. например, у меня есть настраиваемый элемент управления шаговым механизмом с меткой, представляющей количество элемента меню (питание). я устанавливаю его на 2, прокручиваю вниз (так что ячейка не отображается), прокрутка назад снова, и это 0. У меня есть несколько разделов в моем представлении таблицы, поэтому я также реализую titleForHeaderInSection и numberOfRowsInSection. Ничего особенного. – Polis
У меня была эта проблема раньше. Теперь я использую фреймворк с открытым исходным кодом Kingfisher, и он отлично работает. Кроме того, он поддерживает асинхронное изображение, которое сделает ваше приложение намного быстрее без какого-либо кода с вашей стороны. –