У меня есть один tableview
с двумя разделами: ингредиенты для покупки и ингредиенты, которые пользователь уже имеет. Таким образом, в основном, когда использование делает покупки, он передает один ингредиент из одного списка в другой.reloadData после moveRowAtIndexPath
Вот tableView:cellForRowAtIndexPath
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("IngredientCell", forIndexPath: indexPath) as! IngredientCell
cell.checkbox.checkboxDelegate = self
cell.checkbox.checkboxIndex = indexPath
...
}
Я буду называть это один: (я включил stateOfCheckbox - каждый tableviewcell включает в себя пользовательскую кнопку с ролью checkbox
- в основном это одна дает мне направление из/I сделают ход).
func doChange(stateOfCheckbox: Bool, row: Int){
let fromSection = stateOfCheckbox ? 0 : 1
let toSection = stateOfCheckbox ? 1 : 0
let fromIndexPath = NSIndexPath(forRow: row, inSection: fromSection)
let toIndexPath = NSIndexPath(forRow: 0, inSection: toSection)
let dataPiece = ingredients[fromIndexPath.section][fromIndexPath.row]
ingredients[toIndexPath.section].insert(dataPiece, atIndex: toIndexPath.row)
ingredients[fromIndexPath.section].removeAtIndex(fromIndexPath.row)
ingredientsTableView.moveRowAtIndexPath(fromIndexPath, toIndexPath: toIndexPath)
ingredientsTableView.reloadData()
}
Я не хотел бы называть reloadData
, но когда не вызываются каким-то образом индексы таблиц смешались. Это необходимо? Или есть другой способ?
Вот как ведет себя, если reloadData
нет. Я не хочу перезагружать все и снова перекрашивать. Что было бы лучше?
Что значит точно «индексы запутались»? Что происходит, вы получаете сообщение об ошибке? –
Сначала, когда установлен флажок, строка будет отправлена во второй раздел. Во второй раз, если я выберу третью строку, он может отправить четвертый компонент в раздел «Got'em». И флажок остается выбранным для третьего. (У меня нет элементов в первом разделе). Кажется, что картина выполнена неправильно. –
Ваша «строка» кажется отключенной. Не могли бы вы опубликовать код, из которого вызывается 'doChange()'? –