現在、コーディングで大きな問題に直面していますが、解決策が見つかりません。
ここに表示されているように、次の機能を使用して拡張可能なテーブルビューを作成します。
- カテゴリは2つのセクションに分かれています
- サブカテゴリ
つまり、「2A」をクリックすると、「2A-1」、「2A-2」などのリストが展開されます。「2B」をクリックすると、「2B-1」、「2B-2」のリストが表示されます。
どうやって管理できると思いますか?
現在、コーディングで大きな問題に直面していますが、解決策が見つかりません。
ここに表示されているように、次の機能を使用して拡張可能なテーブルビューを作成します。
つまり、「2A」をクリックすると、「2A-1」、「2A-2」などのリストが展開されます。「2B」をクリックすると、「2B-1」、「2B-2」のリストが表示されます。
どうやって管理できると思いますか?
私はいくつかの製品でこの性質の解決策を書いています。これを実現するためのコードは少し大雑把なので、大まかな概要を説明します。
各「行」をセクションとして作成します。明らかに、viewForHeaderInSection
各セクション ヘッダーを実際に行のように見せるために、オーバーライドなどを行います。
View Controller に、展開されたセクションの配列を保持させます (展開されていないセクションは折りたたまれています)。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
セクションが展開されているかどうかの チェックで、展開されている場合はサブアイテムの数を返し、展開されていない場合は 0 を返します。
したがって、cellForRowAtIndexPath は常にサブアイテムのみを返し、viewForHeaderInSection は常に親を返します。
ユーザーがヘッダー セルをクリックすると、セクション展開フラグが切り替えreloadSections:withRowAnimation:
られ、素敵なアニメーション トランジションが得られます。
IOS6 より前のバージョンでは、セクション ヘッダーは常に再作成され、キャッシュされることはなかったので、パフォーマンスはあまり良くありませんでした。IOS6 では、ヘッダー セルもリサイクルされるため、この問題は解決されています。
展開可能なセルの場合、 VPPDropDownクラスを使用できます。私はそれを自分で使用しました。