关于如何显示用户注释列表的想法(UITableView vs UIScrollView vs?)

时间:2013-01-06 02:00:20

标签: ios uitableview uiscrollview

我曾与UICollectionViewUITableView合作,但我从未与UIScrollView合作,之前我认为我应该用它来显示(可能很长的)垂直列表来自数组的用户评论。

我在考虑使用UITableViewUIScrollView,但不确定哪个更好用于另一个。我熟悉UITableView但不熟悉UIScrollView,因此我不知道如何在UIScrollView中列出和显示评论。例如。我需要添加到UIScrollView以使其显示一组用户注释?它是Web视图(之前我没有使用Web视图)吗?

2 个答案:

答案 0 :(得分:3)

如果您使用的是注释数组,那么使用UITableView(或UICollectionView)听起来合乎逻辑,否则您需要自己管理视图创建和发布。 UITableView实际上是一个UIScrollView实现,为您完成了视图管理。

UIScrollView可能很难自己管理。它是一个空白画布,您可以在其中添加视图,但您希望一次有多少视图?没有必要一次加载所有评论。因此,您需要一个能够跟踪滚动位置的系统,并动态加载和卸载必要和不必要的视图,这正是表视图和集合视图所做的。

请确保UITableView陷阱中的UIScrollView不落空。这是永远不推荐的,并且可能对内存管理有害(因为可以加载超过必要的视图或单元格,这取决于注释的数量,可能很多)。如果您当前正在使用滚动视图来显示视图,则可以将其转换为一个或多个视图,然后将它们设置为表视图的顶部单元格,并将注释放在较低的单元格中。

答案 1 :(得分:1)

我会使用UITableView,特别是如果注释数组很长的话。表支持单元重用,这将有助于减少内存占用。我的意思是,如果配置正确,一旦单元格在向下滚动时从屏幕顶部移出,它将从底部出来并带有新内容。

如果您希望在事后添加到表中,表视图还可以轻松地为新行设置动画:

[<#(UITableView *)#> insertRowsAtIndexPaths:<#(NSArray *)#> withRowAnimation:<#(UITableViewRowAnimation)#>];

自动将特定单元格滚动到顶部,底部,中心等的操作

[<#(UITableView *)#> scrollToRowAtIndexPath:<#(NSIndexPath *)#> atScrollPosition:<#(UITableViewScrollPosition)#> animated:<#(BOOL)#>];

此外,如果您进入表格视图路线,有一些项目正在实施CocoaControls.com上的消息应用程序启发的气泡式聊天记录。我相信所有这些项目都使用表格视图。