2016-12-16 18 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() 
関連する問題