【问题标题】:Best way to do paging in UITableView在 UITableView 中进行分页的最佳方法
【发布时间】:2011-08-31 13:44:23
【问题描述】:

我正在开发一个房地产应用程序。该应用程序在用户填写表单(最小房间、价格等)后查询数据馈送服务器,并获取一个带有特定键/值对(属性名称、属性地址、经度/纬度、价格等)的 json 字符串。 )。

我想要做的是允许用户浏览 UITableView 中的列表,即使提要包含一长串项目,而不必使用户 iphone 超载(在查询之前返回的项目计数是未知的完成,所以应用程序需要处理这个)...你会建议我分页吗?

提前谢谢,

斯蒂芬

【问题讨论】:

标签: iphone ios ios4 uitableview


【解决方案1】:

如果您的tableView:cellForRowAtIndexPath: 方法使用dequeueReusableCellWithIdentifier: 正确编写(并且您不使用tableView:heightForRowAtIndexPath:,或者它非常快),UITableView 应该能够处理数千行而不会使设备过载。您只需要关心原始数据的存储即可。

至于在查询完成之前不知道行数的问题,这很容易解决。当您从查询中收到更多行时,只需使用 UITableView 的 insertRowsAtIndexPaths:withRowAnimation: 通知表视图有更多行可用(并确保您的 tableView:numberOfRowsInSection:tableView:cellForRowAtIndexPath: 将反映这些新行)。

如果您还想等到用户滚动到当前列表的末尾再继续查询,请注意 UITableView 是 UIScrollView 的子类,而 UITableViewDelegate 实现了 UIScrollViewDelegate。因此,只需在 UITableViewDelegate 上使用 scrollViewDidScroll: 即可了解用户何时滚动,然后检查表格视图的 contentOffset 以确定它们是否向下滚动到足以加载更多数据的程度。

【讨论】:

    【解决方案2】:

    人们可以拥有的平均物品数量是多少? 10、100、1000?它有图像还是只有数据?一般来说,我会投票支持没有任何分页 - 向下滚动时加载更多,如果没有太多,请尝试在第一次加载所有页面。您还可以将它们缓存在设备上并添加“拉动刷新”功能,从而改善离线体验。

    【讨论】:

    • 每页 10 个项目,如果它在网页上并且它有图像要显示在表格单元格中
    • 如前所述,我不知道总列表。例如,一个特定的搜索可能有 110 个项目,每个“页面”显示 10 个项目,它会显示 11 个“页面”
    • 每页 10 个项目,如果它在网页上并且它有图像要显示在表格单元格中
    • 在这种情况下,我只需将所有内容加载到一个表中,并且没有分页。
    【解决方案3】:

    如果有人对使用按钮进行分页感兴趣,那么我发现这篇文章很有用http://www.mindyourcode.com/ios/iphone/pagination-in-uitableview-with-next-previous-buttons/ 可能对其他人会有所帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-01
      • 2012-06-24
      • 2022-07-21
      • 1970-01-01
      • 2010-09-11
      • 2017-12-01
      • 2016-05-18
      相关资源
      最近更新 更多