4

ツールバーのセグメント化されたコントロールを使用して、テーブル ビューのさまざまなセクションを除外する最善の方法は何だろうと考えています。

たとえば、金曜日、土曜日、日曜日の 3 つの異なるセクションにセルを含むテーブル ビューがあるとします。また、ビューの上に 4 つのセグメント (すべて、金曜日、土曜日、日曜日) を持つツールバーがあります。セグメント化されたコントロールで「すべて」を選択すると、テーブル内のすべてのセクションとセルが表示されます。セグメント化されたコントロールで「金曜日」が選択されている場合、金曜日セクションのセルのみが表に表示されます。などなど…。

テーブルビューコントローラーのコードのどこでこれを実現できますか? 達成するのはかなり簡単なことだと思うので、誰かが私に指摘できる他の例はありますか?

前もって感謝します!

4

1 に答える 1

3

それを行う1つの場所は、UITableViewDataSourceコード内です。データソースににアクセスを許可し、そのプロパティUISegmentedControlの値にアクセスできるようにします。selectedSegmentIndexそこで、tableView:numberOfRowsInSection:インデックスを調べて適用できない行の数を差し引くことにより、適切な行数を見つけることがtableView:cellForRowAtIndexPath:でき、現在の選択に基づいて行のインデックスを再作成することができます。

メソッドをサポートするために、モデルに追加のデータ構造を保持する必要がある場合がありますtableView:cellForRowAtIndexPath:。具体的には、3つの「特別な」日の配列を追加して、「金曜日が選択された場合の行番号3」の検索で、該当する3番目の行を検索するためにすべてのデータをループする必要がないようにすることができます。

于 2012-09-21T02:02:01.950 に答える