3

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

我正在考虑使用UITableViewUIScrollView但不确定哪个更好使用。我熟悉UITableView但不熟悉,UIScrollView所以我不知道如何在UIScrollView. 例如,我需要添加什么UIScrollView以使其显示一组用户评论?它是 Web 视图(我之前没有使用过 Web 视图)吗?

4

2 回答 2

3

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

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

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

于 2013-01-06T02:06:50.053 回答
1

我会选择 UITableView,特别是如果评论数组很长。表支持单元重用,这将有助于减少内存占用。我的意思是,如果配置正确,只要一个单元格在向下滚动时离开屏幕顶部,它就会从底部出现新内容。

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

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

以及自动将特定单元格滚动到顶部、底部、中心等的操作。

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

此外,如果您采用表格视图路线,那么在CocoaControls.com上有一些关于实现消息应用程序启发的气泡式聊天日志的项目。我相信所有这些项目都使用表格视图。

于 2013-01-06T02:07:29.263 回答