1

テーブルビューでファイルを表示しています。cellForRowAtIndexPath で、特定の種類のファイルだけを表示したい。

私はこのようなことをしています:

    if (document is folder) {
       display folder details;
    } 
    else (document is not folder) {
       display empty cell;
     }

これを行うことで、空のセルを表示できますが、それらはまだそこにあります(隠されています)。それらの行を取り除く方法。詳細は写真をご覧ください。

ここに画像の説明を入力

4

2 に答える 2

2

問題を再考する必要があると思いますcellForRowAtIndexPath:。存在しないセルに呼び出されることはありません。データセットで利用可能なフォルダーの数を特定し、その数をtableView:numberOfRowsInSection:

cellForRowAtIndexPath:作成する必要がある実際のセルであるため、到達したら非表示にすることを心配する必要はありません。

于 2013-01-21T21:15:54.133 に答える
1

セルを「非表示」にするには、最初にフォルダーのみの配列を作成する必要があります。実際にセルを非表示にするのではなく、テーブルのデータソース配列に正しいオブジェクトのみを含めます。

で、viewDidLoadドキュメント配列全体を繰り返し処理し、次のようにフォルダーを別のフォルダー配列に追加します。

_folderArray = [NSMutableArray new];
for(Document *doc in documentsArray)
{
    if(doc is a folder)
    {
        [_folderArray addObject:doc];
    }
}

documentsArrayの代わりに、すべてのtableViewデリゲートおよびデータソースメソッドでそのfolderArrayを使用してください。

于 2013-01-21T21:15:06.020 に答える