我曾与UICollectionView
和UITableView
合作,但我从未与UIScrollView
合作,之前我认为我应该用它来显示(可能很长的)垂直列表来自数组的用户评论。
我在考虑使用UITableView
或UIScrollView
,但不确定哪个更好用于另一个。我熟悉UITableView
但不熟悉UIScrollView
,因此我不知道如何在UIScrollView
中列出和显示评论。例如。我需要添加到UIScrollView
以使其显示一组用户注释?它是Web视图(之前我没有使用Web视图)吗?
答案 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上的消息应用程序启发的气泡式聊天记录。我相信所有这些项目都使用表格视图。