2012-04-07 4 views
2

テーブルビューに3つのセルがあります。私は、中間のセルをアニメーション表示して非表示にする必要があります。第3のセルは、中央のセルが隠されているときに、中央のセルの場所に移動します。中央のセルが再び表示されると、3番目のセルが元の場所に移動します。それを達成する方法はありますか?テーブルビューの中間セルを非表示にする

答えて

3

あなたは

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

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

を使用することができますが、あなたのdataSourceはまた、これらのコールは「

// delete 

NSArray *deleteIndexes = [[NSArray alloc] initWithObjects:[NSIndexPath indexPathForRow:1 inSection:0]]; 

UITableView *tableView = self.tableView; 

[tableView beginUpdates]; 
[tableView deleteRowsAtIndexPaths:deleteIndexes withRowAnimation:UITableViewRowAnimationFade]; 
// Any other actions for updating the tableView 
[tableView endUpdates]; 
+0

を作っている時には変更はの行動を注意することを反映する必要があります。このメソッドはbeginUpdatesメソッドとendUpdatesメソッドで定義されたアニメーションブロックで呼び出されます。この2つの方法の文書の中で私はこの文に対して何をすべきですか? –

+1

複数の操作を行っている場合など。挿入/削除または再ロードを1つのブロックにまとめる必要があります。上記のコードを修正して、ブロックを使用するようにしました。 –

+0

このエラーが発生したセルを削除すると、次のようになります。2012-04-07 19:11:14.852 myApp [13230:207] ***アサーションエラー - [UITableView _endCellAnimationsWithContext:]、/SourceCache/UIKit_Sim/UIKit-1912.3/UITableView.m:1046 –

関連する問題