0

現在、コーディングで大きな問題に直面していますが、解決策が見つかりません。

ここに表示されているように、次の機能を使用して拡張可能なテーブルビューを作成します。

  • カテゴリは2つのセクションに分かれています
  • サブカテゴリ

つまり、「2A」をクリックすると、「2A-1」、「2A-2」などのリストが展開されます。「2B」をクリックすると、「2B-1」、「2B-2」のリストが表示されます。

どうやって管理できると思いますか?

4

2 に答える 2

1

私はいくつかの製品でこの性質の解決策を書いています。これを実現するためのコードは少し大雑把なので、大まかな概要を説明します。

各「行」をセクションとして作成します。明らかに、viewForHeaderInSection各セクション ヘッダーを実際に行のように見せるために、オーバーライドなどを行います。

View Controller に、展開されたセクションの配列を保持させます (展開されていないセクションは折りたたまれています)。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section セクションが展開されているかどうかの チェックで、展開されている場合はサブアイテムの数を返し、展開されていない場合は 0 を返します。

したがって、cellForRowAtIndexPath は常にサブアイテムのみを返し、viewForHeaderInSection は常に親を返します。

ユーザーがヘッダー セルをクリックすると、セクション展開フラグが切り替えreloadSections:withRowAnimation:られ、素敵なアニメーション トランジションが得られます。

IOS6 より前のバージョンでは、セクション ヘッダーは常に再作成され、キャッシュされることはなかったので、パフォーマンスはあまり良くありませんでした。IOS6 では、ヘッダー セルもリサイクルされるため、この問題は解決されています。

于 2012-10-09T03:28:51.630 に答える
0

展開可能なセルの場合、 VPPDropDownクラスを使用できます。私はそれを自分で使用しました。

于 2012-10-09T03:49:54.727 に答える