0

我有一个视图来显示 UITableView 中的商店列表。

用户应该可以修改某些过滤器显示的商店。例如,应该可以显示按名称排序的商店(第一个字母作为部分标题)。此外,用户应该能够只显示收藏夹按类别对商店进行排序(类别名称是部分标题):

在此处输入图像描述

我不想要一个表格视图来处理所有过滤器,因为我认为这将是一堆 if-then-else 标记,具体取决于当前过滤器。所以我决定创建4 个 UITableViewController,每个都处理一个过滤器。

这正是我所需要的,到目前为止没有冗余,因为 tableVC 委托和数据源方法是需要以不同方式实现的方法。

但现在我确实需要一个根据表格滚动位置出现的标题。这在所有 4 个表中完全相同。但是我现在应该如何解决这个问题呢?

在冗余的四个UITableViewController中分别实现UIScrollViewDelegate方法?创建一个 ParentViewController 处理 scrollView 方法(这不会那么容易,因为表数据源和委托方法......

任何建议如何正确解决这个问题?你会怎么做?

我会很感激任何帮助,在此先感谢。

4

1 回答 1

1

我将创建一个父类,处理标题并从中派生过滤器的 UITableViewControllers。

超类负责公共元素(如标题),子类负责实际显示。

或者,您可以创建一个重载方法,该方法返回要显示的单元格数组。

存储这个数组,当委托(在超类中)请求“单元格数据”时,给他数组中的相应元素。

于 2012-07-21T13:48:40.997 回答