分页引擎架构 - iOS

Pagination engine architecture - iOS

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

在我之前的实现中,我

- 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 应该被视为不得已的方法,而不是寻找问题的解决方案(实际上,类别本身真的不应该在工具链的顶部开始与).

所以我的问题是 - 这种新设计是否是问题的最佳解决方案。或者您会推荐一些更好的方法吗?

我不明白您不想要的重复代码到底是什么,但我完全不认为使用类别是解决此问题的好方法。

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

如果对你有帮助可以看看我的文章Anatomy of a TableView(Controller) Architecture and the one specific on Interaction Objects。 您可以将交互对象想象成包含单元格所需所有信息的框,例如:

  • 我应该展示什么?
  • 我应该使用什么样的电池?
  • 如果使用 select 这个单元格(目标,select 或,..),我必须做什么? 等等

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

;)

对于分页,我将创建一个依赖于 table 视图控制器的管理器。思路是:

  1. UsertableView;
  2. 上做了一些事情
  3. table视图的委托(通过交互对象、委托或块)与视图控制器通信;
  4. 视图控制器,向分页管理器询问新参数;
  5. 视图控制器传递给table视图的数据源新参数并重新加载它;