何时使用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 *)indexPath
和UITableViewDelegate
:
`-(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只允许垂直滚动。