web-dev-qa-db-ja.com

UITableViewセルアニメーションの追加

誰かがUITableViewアニメーションの問題で私を助けることができますか?

デフォルトでは、セルを削除してUITableViewにセルを並べ替えるアニメーションがあります。

セルを追加するアニメーションを作成できますか?.

私はチェックアウトしましたThree2TwitterMyProfile> ReTweetsでテーブル展開アニメーションをどのように実行したかを取得できませんでした。

UITableViewの既存のアニメーションを使用してThree20 frameowrk,なしで試してみたいと思います。

32
Ameya

次のUITableViewメソッドを使用できます。

- (void)insertRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation

Self.dataSourceが可変配列で、テーブルにセクションが1つしかない例:

[self.dataSource addObject:@"New Item"];
NSIndexPath *newIndexPath = [NSIndexPath indexPathForRow:[self.dataSource count]-1 inSection:0];
[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath] withRowAnimation:UITableViewRowAnimationFade];

注:NSIndexPathのインデックスはゼロであるため、データソースカウントから1を減算します。

62
RunLoop

Swift

テーブルビューのデータソースである配列の例

_var myArray = ["Cow", "Camel", "Sheep", "Goat"]
_

以下は、テーブルビューの上部にアニメーション付きの行を追加します。

_// add item to current array
myArray.insert("Horse", atIndex: 0)

// insert row in table
let indexPath = NSIndexPath(forRow: 0, inSection: 0)
tableView.insertRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Fade)
_

複数の更新

複数の挿入や削除を行う必要がある場合は、それらをbeginUpdates()およびendUpdates()で囲みます。

_tableView.beginUpdates()
tableView.insertRowsAtIndexPaths([addIndexPath1, addIndexPath2, ...], withRowAnimation: .Fade)
tableView.deleteRowsAtIndexPaths([deleteIndexPath1, deleteIndexPath2, ...], withRowAnimation: .Fade)
tableView.endUpdates()
_

さらに読む

13
Suragch

ReloadRowsAtIndexPaths:indexPathを使用します

    tableView.beginUpdates()
    [tableView reloadRowsAtIndexPaths:indexPath withRowAnimation:UITableViewRowAnimationAutomatic];
    tableView.endUpdates()

これがお役に立てば幸いです。

0
Muruganandam.S