何时使用UICollectionView而不是UITableView?

我发现UICollectionView就像在iOS6中引入的UITableView的升级版本,但是什么时候应该selectUICollectionView而不是UITableView

还有使用UITableView应用程序,如果UICollectionView可以做任何事情UITableView可以做,为什么人们仍然使用UITableView ? 就表演而言,是否有区别?

谢谢!

这取决于要求。 应用程序的stream程如何确定将哪种types的UI集成到应用程序中。

人们主要使用UICollectionview创build具有网格中显示的多个图像的UI的types。 这将有复杂的逻辑使用UITableView ,但与UICollectionview ,这将是容易的。

使用UICollectionview ,您不需要通过获取选定的项目值来设置带有标签或其他东西的button。 你可以简单地得到-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPathUITableViewDelegate

 `-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath` 

你得到选定的行而不是项目,所以为了创build网格或修改的项目,使用UICollectionview是最好的。

对于每个项目的列表详细信息,人们使用UITableView因为它显示每个项目的更多信息。

Apple文档:

UICollectionView类参考

UICollectionView类pipe理数据项的有序集合,并使用可定制的布局显示它们。 集合视图提供了与表视图相同的一般function,只是集合视图能够支持的不仅仅是单列布局。 集合视图支持可用于实现多列网格,平铺布局,圆形布局等的可自定义布局。 如果需要,您甚至可以dynamic更改集合视图的布局。

UITableView类参考

表视图显示单列中的项目列表。 UITableView是UIScrollView的子类,它允许用户滚动表格,尽pipeUITableView只允许垂直滚动。 包含该表的各个项目的单元是UITableViewCell对象; UITableView使用这些对象来绘制表格的可见行。 单元格具有内容标题和图像,并且可以在右边缘附近具有附件视图。 标准附件视图是披露指标或详细披露button; 前者导致数据层次中的下一个层次,后者导致所选项目的详细视图。 附件视图也可以是框架控件,如开关和滑块,也可以是自定义视图。 表视图可以进入编辑模式,用户可以插入,删除和重新sorting表的行。

对于简单的列表和向前/向后的导航,请使用UITableView

如果您需要高度的自定义性,请使用UICollectionView

一般来说,在软件开发中,最好select代表“最简单的可能性”的方法。

这是我的标准:

  • 如果一个UITableView可以做到这一点,使用它

  • 如果一个UITableView需要大量的代码来完成,或者根本无法完成,那就使用UICollectionView。

在做出决定之前,你必须考虑UITableView的限制:这是一个单独的列。 而且你只能自定义单元格,而不能使用部分背景等等。 所以,如果你有一个没有额外的装饰的东西 – 这看起来像一个沼泽标准的iOS视图,基本上 – 然后使用UITableview。 如果您有自定义的插图,或每个部分周围的边框,请使用UICollectionView。

实际上,我正在考虑使用UICollectionView来处理所有的事情,因为当你开始将视图作为一个表视图来开发的时候,它是非常昂贵的,然后再发现它不能做到你需要的一件事情。 第一手体验;)

经过两次更多的经验编辑:忽略最后一段。 UICollectionView需要大量的样板代码才能使其像UITableView一样工作。 只有在真正需要的时候才使用UICollectionView。 ;)

根据我的观点,collectionView和tableView的主要区别在于

TABLEVIEW – >仅显示一列中的项目列表。

COLLECTION-VIEW – >显示多列中的项目列表。

希望它会帮助你。

如果您selectiPhone的UITableView,请确保您首先考虑了您的iPad策略。 如果你想要一个iPad特定的布局,你可能希望这个单列布局成为一个网格。

两者都取决于要求。 表视图也支持各种编辑场景。 这个支持还没有在Collection View类中实现。 如果您正在从依赖于这些方法的表视图进行转换,则希望在“集合视图”中执行一些额外的繁重工作。 集合视图节标题可以放在视图的任何地方。 和UITableView不需要设置标签或其他东西的button获取选定的项目值。

尽pipe这不是必需的,但我总是使用collectionview。 这样我就可以很容易地调整我的藏品如何呈现不同的分辨率。 另外一个好处是它可以在未来重构时快速添加新的单元格types。

我没有看到桌面的观点。 使用集合视图来表示表格非常简单。 IMO。

它完全依赖于你的数据如何显示。 正如上面提到的那样,如果你只需要单一的数据集,而且不太复杂的话,那么去UITableView否则使用UICollectionView

UICollectionView是定制友好的。

如果你正在处理多个单元格高度,那么去UICollectionView

基于我们的需要,我们selectTableView或CollectionView。

例:

对于手机通讯录tableView是最好的select。

对于相册,collections视图将是最佳select。

我在当前的项目中遇到了这个问题。 使用哪个。 在我的情况下,真的很简单。 我需要两个。 我需要我的视图看起来像UITableView,也要改变它的变化/布局。 所以,使用了UICollectionView。 我也使用UITableView,我不需要任何额外的定制。 由于UiTableView带有包含图像和文本的默认布局 – 为了简单起见,我使用它。

根据我们的要求,我们selectUITableView或UICollection视图。

如果我们想要显示网格types的图像或项目,或者如果我们需要更多的自定义function,我们使用UICollectionView。

为了列出每个细节和细节,我们使用UITableView。

UICollectionView: UICollectionView类pipe理数据项的有序集合,并使用可自定义的布局显示它们。 集合视图提供了与表视图相同的一般function,只是集合视图能够支持的不仅仅是单列布局。

UITableView:表视图显示单列中的项目列表。 UITableView是UIScrollView的子类,它允许用户滚动表格,尽pipeUITableView只允许垂直滚动。