2016-12-16 2 views
0

У меня есть ячейка UITableView. Количество строк обычно равно 6, но когда запускается определенное событие, это увеличится до 7, и я хочу вставить новую строку с анимацией внизу. В настоящее время мой код так:UITableView не прокручивается во времени, чтобы увидеть вставку клеточной анимации

(источник данных был обновлен)

tableView.beginUpdates() 
tableView.insertRows(at: [IndexPath(row:6, section: 0)], with: .left) 
tableView.endUpdates() 
tableView.scrollToRow(at: IndexPath(row:6, section: 0), at: .top, animated: true) 

Это вставляет строку и прокручивается на дно, но я не могу увидеть анимацию ячейки правильно. Это больше похоже на вставку ячейки, а затем прокрутку после этого, поэтому я не вижу ее анимации слева. Что я здесь делаю неправильно?

ответ

0

Этот код для удаления строки из вида таблицы с левой анимацией. Вы можете попробовать добавить строку, а также обновить вид таблицы в основном потоке.

tableview.beginUpdates() 
    var indexPathsToDeleteForAnimation: [NSIndexPath] = [] 
    var numOfCellsToRemove = ArrayOfItemsToRemove ?? 0 

    // Do your work here 
    while numOfCellsToRemove > 0 { 
     // ...or here, if you need to add/remove the same amount of objects to/from somewhere 
     indexPathsToDeleteForAnimation.append(NSIndexPath(forRow: selectedCellIndex+numOfCellsToRemove, inSection: 0)) 
     numOfCellsToRemove -= 1 
    } 
    tableview.deleteRowsAtIndexPaths(indexPathsToDeleteForAnimation, withRowAnimation: UITableViewRowAnimation.Right) 
    tableview.endUpdates() 
Смежные вопросы