Я использую xCode 7 beta и Swift для реализации tableview с помощью MGSwipeTableCells. Я делаю это, потому что мне нужно иметь кнопку прокрутки слева и справа от каждой ячейки. Обе эти кнопки должны удалить ячейку из таблицы.Swift MGSwipeTableCell Swipe to Delete Cell
Я попытался сделать это с помощью метода удобства обратного вызова при добавлении кнопки клетки:
// Layout table view cell
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let cell = tableView.dequeueReusableCellWithIdentifier("newsFeedCell", forIndexPath: indexPath) as! NewsFeedCell
cell.layoutIfNeeded()
// Add a remove button to the cell
let removeButton = MGSwipeButton(title: "Remove", backgroundColor: color.removeButtonColor, callback: {
(sender: MGSwipeTableCell!) -> Bool in
// FIXME: UPDATE model
self.numberOfEvents--
self.tableView.deleteSections(NSIndexSet(index: indexPath.section), withRowAnimation: UITableViewRowAnimation.Fade)
return true
})
cell.leftButtons = [removeButton]
Однако после того, как я удаляю первую ячейку, все индексы скидываются и обратный вызов в настоящее время удаляет неправильная ячейка. То есть, если я удалю cell_0, cell_1 теперь станет первым 0-м в таблице. Тем не менее, обратный вызов для кнопок, связанных с cell_1, удаляет ячейку с индексом 1, даже если она фактически является 0-й ячейкой в таблице.
Я попытался реализовать методы делегирования MGSwipeTableCell, но безрезультатно. Ни один из этих методов никогда не вызывался при выполнении моего кода. Как мне исправить эту проблему? Будет ли решение делегата решить эту проблему? Если бы, можно было бы привести пример? Если нет, можете ли вы предложить альтернативный способ иметь ячейки таблицы со стрелковыми кнопками с обеих сторон, которые могут удалять указанные ячейки?