2011-07-13 29 views
2

ネストされたスレッド項目を表示するためにUITableViewを設定しようとしています。私はコアデータとNSFetchedResultsControllerを使用していますが、私のアプローチがどうあるべきかはわかりません。UITableViewツリー構造の実装

  • アイテム#1
    • 商品番号1.1
    • 商品番号1.2
    • すべて表示
  • アイテム#2
    • アイテム:私はこのような情報を表示したいです#2.1
    • アイテム#2.2
    • は、各サブセクションでは、(上記各弾丸が単一のテーブルビューセルで)クリックすると、追加のサブアイテムに置き換えられることを「すべて表示」ボタンを有し、上記においてすべて

を表示します。誰もが何か似たようなことをして、アプローチヒントを持っていますか?ありがとう。

+0

あなたは#1.1.1のように深いレベルになりますか? –

+0

@Salcedo現在、複数のレベルの入れ子をサポートする予定はありません。 –

+0

ノードは、例えば、「アイテム#1」であり、リーフは、例えば、 'item#1.1'は同じエンティティか2つの異なるエンティティですか? – TechZen

答えて

4

NSFetchedResultsControllerを作成していないモードに詰め込もうとするのは大変です。 FRCにはネストしたテーブルの本来のサポートはありません。ネストしたテーブルをハックして問題を処理するカスタムテーブルビューコントローラを作成するよりも多くの作業が必要になると思います。テーブルが2つ以上のエンティティからのオブジェクトを表示する場合、これは二重に当てはまります。

また、ハンドヘルド携帯でネストしたテーブルを使用することには注意が必要です。 iPhoneの画面には、約11の標準サイズの行しか表示されません。上の例では、誰でも2〜3つのノード見出しのみが表示されます。さらに悪いことに、11個以上の葉を持つノードがある場合、葉のスクリーンだけが表示され、テーブルビューの階層的な性質が偽装されます。

ほとんどの場合、それぞれ個別のレベルで表示されるテーブルビューの階層は、ほとんど常に最適なデザインです。

+0

OPのために、私はそれをできるだけシンプルに保つことを提案するでしょう。 –

1

セクション見出しを使用して、見出しを項目名にしてリストを分割することができます。すべてのアイテムが利用可能になり、それらを一度にスクロールできます。インデントを1レベルだけ必要とするので、これはうまくいくでしょう。

サブタスクを複数のインデントとして表示するGoTasks(アプリケーションストアからの無料ダウンロード)というサブアイテムをかなり効果的に使用していることがわかりましたが(折りたたみなし)、かなり効果的だと思います。私のiPhoneのスクリーンスペースがなくても。残念なことに、私のiPhone開発の経験は、それがどのように行われたかを伝えるのに十分ではありません。