我有一个名为AppAdvice的应用程序似乎正在使用Three20。我注意到他们在大多数tableview中都有一个机制,当你向下滚动到列表底部并显示最后一行时,它会自动加载更多结果。
在最后一行中还有一个指示符,告诉用户更多项目正在加载,然后在加载其他项目时它会消失。一旦显示最后一行,应用程序就会请求更多结果。
有关他们如何实施这一点的任何线索?我无法弄清楚的是如何将项目附加到表格视图并重新定位指标行。
我知道three20有一个tttablemorebutton,但我无法弄清楚如何使用它。
http://ws.2wsx.ws/load_more_items.jpg
感谢, 豪伊
答案 0 :(得分:2)
所有TTTableMoreButton都在你的模型上调用以下代码(代码在TTTableViewDelegate中)
- (void)load:(TTURLRequestCachePolicy)cachePolicy more:(BOOL)more
如果more为YES,则设置_isLoadingMore标志。测试一下:
- (void)requestDidFinishLoad:(TTURLRequest*)request
然后将额外的结果追加到_items数组而不是将它们插入顶部。
当然,要实现这一切,您需要实现TTModel(覆盖数据源中的模型方法)。对于面向数据的应用程序,最好看的是TTURLRequestModel,我确信在TTTwitter中有这样的例子
答案 1 :(得分:1)
我写了如何准确地做到这一点here
使用带有TTTableMoreButton作为最后一项的列表数据源进行设置。我们只是在数据源中添加一个钩子,以便何时显示更多的单元格,然后以编程方式发送更多请求以加载更多项目。你可以调整它,以便它在列表的早期发送更多的请求,但我把它留给你。
答案 2 :(得分:0)
- (void)load:(TTURLRequestCachePolicy)cachePolicy more:(BOOL)more
答案 3 :(得分:0)
我看到了问题,这激励我为它写一篇博文。 http://blog.grio.com/2012/03/thumbnail-view-of-large-number-of-photos-with-three20.html 希望它有所帮助。