我有一个视图来显示UITableView中的商店列表。
用户应该可以修改某些过滤器显示的商店。
例如,应该可以显示按名称排序的商店(首字母作为部分标题)。此外,用户应该能够仅显示收藏夹或按类别对商店进行分类(类别名称为板块标题):
我不希望使用一个表视图来处理所有过滤器,因为我认为根据当前过滤器,if-then-else标签会一团糟。所以我决定创建4
UITableViewControllers每个都处理一个过滤器。
正是我所需要的,到目前为止没有冗余,因为tableVC委托和数据源方法是需要不同实现的方法。
但是现在我确实需要根据表的滚动位置显示的标题。这在所有4个表中都完全相同。但是我现在应该如何解决这个问题?
在四个UITableViewControllers中的每一个中实现UIScrollViewDelegate方法是否多余?创建一个处理scrollView方法的ParentViewController(由于表数据源和委托方法,这并不容易...
有什么建议如何解决这个问题?你会怎么做?
我将不胜感激,在此先感谢。
最佳答案
我将创建一个父类,照顾标题并从中派生出用于过滤器的UITableViewControllers。
超类负责公共元素(如标题),子类负责实际的显示。
另外,您可以创建一个重载方法,该方法返回要显示的单元格数组。
存储此数组,当委托(在超类中)请求“单元格数据”时,给他数组中的相应元素。