2015年2月14日土曜日

[iOS開発] uitableview セクション単位・行単位のアニメーション


uitableviewのアニメーションについて以下整理。

[uitableview reloaddata]はセルの追加、更新、削除を行ったときにセルの内容を任意のタイミングでリフレッシュさせることができるので便利。
だが、アニメーションが動作しないという副作用がある。

その1. UIViewのアニメーションを使う。次のようにbeginupdate - endupdates で挟み込むように処理を記述すればアニメーションが動作する。

[tableview beginupdates]
行の追加処理
[tableview endupdates]

その2.セクション単位・行単位で更新する。次のメソッドを使えば更新+アニメーション動作ができる。もちろん、セクションもしくは行の単位でアニメーションさせられるので、覚えていて損はない。


-reloadSections 

[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:セクション番号] withRowAnimation:UITableViewRowAnimationNone];


-reloadRowsAtIndexPaths

NSIndexPath* indexPath = [NSIndexPath indexPathForRow:行番号 inSection:セクション番号];
[self.tableview reloadRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationNone];


アニメーションの挙動(オプションのパラメータ)についてはこちらのブログが詳しい。
http://alginplus.blogspot.jp/2013/07/uitableviewcell-sample.html







0 件のコメント:

コメントを投稿