2011-10-27 6 views
0

私のTableViewでは、常に少なくとも3つのセルを表示したいと考えています。セルがない場合は、3つのダミーセルを表示し、1つのセルがある場合は、この1つと2つの「ダミーセル」を表示し、2つのセルを表示し、3つのセルがあれば、 4つある場合は、のように表示します。最小限のセルを保持し、まだcommitEditingStyleを使用

だから私はcommitEditingStyleForRowAtIndexPathを実装し、それがうまく働くだろう、それは削除した後、1行以下を想定していたよう私が3から2に取得する場合、私は

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    if ([self.piggyBanks count]< 3) { 
     return 3; 
    } 
    else{ 
     return [self.piggyBanks count]; 
    } 
} 

を持っていないならば、それは、例外がスローされますか(したがって、numberOfRowsForSectionで3を返します)。

これをどのように達成することができますか?あなたのcommitEditingStyleForRowAtIndexPath

答えて

0

This forum postが解決策になりました。

主な問題だった...それは多分私はlateronあまりにedskoのバージョンを試してみましょう、少し複雑だが、私は、細胞を頼らなければならないだろうとそれはまた、問題になることができると思うとき、私1つの実セルのようなものを持っているので、2つのダミーセルがあるので、最後に返されたnumberOfRowsは3だった。残りの1つのセルを削除した場合、commitEditingは2を新しい結果として期待するが、配列数が3未満の場合、3を返します。そうでない場合は、配列数を返します。

私は基本的にフォーラム投稿の示唆をしましたが、最後に返されたnumberOfRowsを格納するプロパティも作成しました。 numberOfRowsがcommitEditingから呼び出された場合は、最後にコミットされた番号-1を返します。今回は、データをリロードするよりも、実際に必要な値を使用します。

これは一度に1つの行を削除しても機能しますが、私のアプリケーションの設定は一度に1行以上の削除を補うものではありません。可能です..

edkosバージョンlateronを試してみましょう。それが簡単になるでしょうか。 ありがとう!

1

おかげで、それはダミー行に置き換えられます場合は、削除する行を削除しないでください。その代わりに、特定の行を再読み込みするようにtableViewに指示します。

関連する問題