0

创建分页引擎架构的最佳方法是什么?

在我之前的实现中,我会

- UIViewController
   - property UITableView
   - with two sections in tableView. One for normal display and other 
   - for PaginationCell 
   - and rest of the business logic how to enable and hide indicator View

我们认为这对于每个功能来说都是过多的重复代码,因此决定删除重复代码。

我们写了一个类别UIViewController来处理数据分页。现在我们使用 处理类别内的所有计算scrollViewDidScroll并使用添加指示页脚视图objc_setAssociatedObject

我认为Associated objects应该将其视为一种不得已的方法,而不是寻找问题的解决方案(实际上,类别本身不应该在一开始就位于工具链的顶部)。

所以我的问题是——这个新设计是解决这个问题的最佳方案吗?或者你会推荐一些更好的方法吗?

4

1 回答 1

1

我不知道你不想要的重复代码是什么,但我根本不认为使用类别是解决这个问题的好方法。

我可以建议的是拥有一个职责分离的良好架构。这将引导您找到解决方案。

如果可以帮助您阅读我的文章Anatomy of a TableView(Controller) Architecture和特定于Interaction Objects的文章。您可以将交互对象想象为包含单元所需所有信息的框,例如:

  • 我应该展示什么?
  • 我应该使用哪种电池?
  • 如果使用选择此单元格(目标、选择器、..),我该怎么办?等等

一般来说,按照所描述的方法,您在大多数情况下都不会感到卡在前面。

;)

对于分页,我会创建一个依赖于表视图控制器的管理器。这个想法是:

  1. 用户在tableView上做一些事情;
  2. tableView 的委托(通过交互对象、委托或块)将事件传达给视图控制器
  3. 视图控制器,向分页管理器询问新参数;
  4. 视图控制器将新参数传递给tableView 的数据源并重新加载它;
于 2016-03-23T09:36:19.213 回答