2011-09-11 10 views
0

すべてのセルがUITableViewで作成された後、空のセル(空白= textLabelのないセル)を取り除くことが可能かどうか疑問に思っていました。アプリデリゲートとしてdelete UITableViewCell programatically

おかげ

答えて

1

なぜ空のセルがありますか?一貫した手法を使用して、テーブル内のセル数とそのセルの内容を制御していますか?

UITableViewControllerを使用している場合、コントローラは自動的にtableviewのデータソースとして宣言されます。 UIViewControllerを使用している場合は、それをUITableViewDataSourceプロトコルに準拠していると宣言します(そしてInterface Builderで接続します)。 cellForRowAtIndexPath: - のtableView:numberOfRowsInSection:

おそらくあなたは、配列とテーブルビューのためのデータを提供している - のtableView :

いずれかの方法では、テーブルビューのデータソースとして、あなたのコントローラは、2つのメソッドを実装する必要があります-tableview内部の他の手段:cellForRowAtIndexPath :.このメソッドの内部では、セルのラベルは配列のエントリから設定されます。そして、tableView:numberOfRowsInSectionの内部:[myArray count]のようなことをして、セルの数を返します。 tableview:cellForRowAtIndexPathは、あなたが指しているように何度も呼び出されます(tableview:numberOfRowsInSection :)で指定したものに依存します)。データソースの配列が変化した場合、あなたは、あなたがいくつかのケースで、これは、計算コストがかかるのでreloadDataが、全体のテーブルビューを再ロードすること

[self.tableview reloadData]; //if inside a UITableViewController 

[self.myTableViewOutlet reloadData]; //if inside a UIViewController 

注意を呼び出すことができ、あなたのテーブルビューの変更を反映したいと思います。この場合、reloadDataを呼び出すのではなく、deleteRowsAtIndexPaths:withRowAnimation:UITableView Class Referenceを参照してください。

+0

ちょっとマット、私は問題を見つけました。それは、画像を非同期にロードしてセルを空にするライブラリでした。あなたは既に私がここに投稿したいくつかの質問に答えているので、私は何をやっているのかよく分かっています:)今、私はユーザをログアウトして別のユーザでログインするときに問題に直面しています。問題はUITableView新しいユーザイベントの新しいデータを取得するためにリフレッシュされませんが、ユーザのIDは更新され、viewdidload()にreloadDataを配置しました。 – ahoura

+0

あなたのコードの一部を見ずに言うのは難しいです。あなたは新しい質問にあなたのコードを投稿することができます。あなたのコードの一部によく構造化された質問を含めることは、しばしばその問題を考える良い方法です。その間、自分で問題をデバッグするには、NSLog(@ "some text here")を入れてください。あなたのテーブルビュー内のステートメント:cellForRowAtIndexPath:メソッドとviewDidLoadメソッド。これは、メソッドが呼び出されているかどうかを確認するのに役立ちます。 – MattyG

+0

返信ありがとう、ソリューションを見つけました...何らかの理由でTabBarコントローラを使用するとUIViewがキャッシュされるため、UIViewを更新するためにviewWillAppear()関数を使用しました。しかし、もう一度 – ahoura

0

、あなたは細胞を提供する責任があります。すべてのセルとテーブル内のセルの数を返すのはあなたの責任です。したがって、アプリケーションの代理人として、あなたはテーブルビューに戻るデータを変更する手段(NSMutableArrayまたはそれ以外の方法で)を持っている必要があります。

+0

'app delegate'は、View Controllerのテーブルビューとほとんど関係がありません。あなたはテーブルビューのデリゲートとデータソースを意味しましたか? – MattyG