0

UITableView 内にショップのリストを表示するビューがあります。

ユーザーは、いくつかのフィルターによって表示されるショップを変更できる必要があります。たとえば、ショップを名前順に表示できるようにする必要があります(セクション ヘッダーとして最初の文字を使用)。さらに、ユーザーはお気に入りだけを表示したり、ショップをカテゴリ別に並べ替えたりできる必要があります(カテゴリ名はセクション ヘッダーです)。

ここに画像の説明を入力

現在のフィルターによっては、if-then-else タグがごちゃごちゃになると思ったので、すべてのフィルターを処理する 1 つのテーブル ビューは必要ありませんでした。そこで、それぞれが 1 つのフィルターを処理する4 つの UITableViewControllerを作成することにしました。

tableVCデリゲートとデータソースメソッドは異なる方法で実装する必要があるため、これはまさに私が必要とするものです。これまでのところ冗長性はありません。

しかし今、テーブルのスクロール位置に応じて表示されるヘッダーが必要です。これは、4 つのテーブルすべてでまったく同じです。しかし、今この問題をどのように解決すればよいでしょうか?

冗長な4 つのUITableViewControllersのそれぞれにUIScrollViewDelegateメソッドを実装しますか? scrollView メソッドを処理する ParentViewController を作成します (テーブル データソースとデリゲート メソッドのため、これは簡単ではありません...

これを適切に解決する方法はありますか?これをどのように行いますか?

事前に感謝します。

4

1 に答える 1

1

ヘッダーを処理して親クラスを作成し、そこからフィルターのUITableViewControllersを派生させます。

スーパークラスは共通の要素(ヘッダーなど)を処理し、サブクラスは実際の表示を処理します。

または、表示するセルの配列を返すオーバーロードされたメソッドを作成することもできます。

この配列を格納し、デリゲート(スーパークラス内)が「セルデータ」を要求したら、配列内の対応する要素を彼に渡します。

于 2012-07-21T13:48:40.997 に答える