1

我有一个名为 AppAdvice 的应用程序,它似乎正在使用 Three20。我注意到它们在大多数表格视图中都有一个机制,当您向下滚动到列表底部并显示最后一行时,它会自动加载更多结果。

最后一行还有一个指示器,告诉用户正在加载更多项目,然后在加载其他项目时消失。显示最后一行后,应用程序会请求更多结果。

关于他们如何实施这一点的任何线索?我想不通的是如何将项目附加到表格视图并重新定位指示器行。

我知道three20 有一个tttablemorebutton,但我不知道如何使用它。

http://ws.2wsx.ws/load_more_items.jpg

谢谢,豪伊

4

4 回答 4

2

TTTableMoreButton 所做的就是在您的模型上调用以下代码(代码在 TTTableViewDelegate 中)

- (void)load:(TTURLRequestCachePolicy)cachePolicy more:(BOOL)more 

如果 more 为 YES,则设置 _isLoadingMore 标志。对此进行测试:

- (void)requestDidFinishLoad:(TTURLRequest*)request 

然后将额外的结果附加到您的 _items 数组中,而不是将它们插入顶部。

当然,要使所有这些工作,您需要实现 TTModel(覆盖数据源中的模型方法)。对于面向数据的应用程序,最好的地方是 TTURLRequestModel,我相信在 TTTwitter 中有这样的例子

于 2011-01-26T03:53:07.633 回答
1

我在这里写了如何做到这一点

这是使用带有 TTTableMoreButton 作为最后一项的列表数据源进行设置的。我们只需在数据源中添加一个钩子,以便在即将显示更多单元格时,然后以编程方式发送更多请求以加载更多项目。您可以对其进行调整,以便它在列表中更早地发送更多请求,但我将其留给您。

于 2011-01-26T04:40:15.463 回答
0

我看到了问题,它激发了我为此写一篇博客文章。http://blog.grio.com/2012/03/thumbnail-view-of-large-number-of-photos-with-three20.html 希望对您有所帮助。

于 2012-03-13T22:30:05.530 回答
0

TTTwitter好像错了,当我点击more按钮时,下面的方法运行了两次,第一次more为true,第二次more为false,所以我们可以看到表格无法正确加载数据。

- (void)load:(TTURLRequestCachePolicy)cachePolicy more:(BOOL)more 
于 2011-11-17T06:25:57.960 回答