AirBnb 如何创建具有不同单元格的集合视图?

Posted

技术标签:

【中文标题】AirBnb 如何创建具有不同单元格的集合视图?【英文标题】:How does AirBnb create a collection view with different cells? 【发布时间】:2017-07-27 20:10:53 【问题描述】:

我注意到,在 Airbnb 应用程序中,当您单击主屏幕上的特定单元格时,它们有一个复杂的集合视图,在不同外观的集合视图单元格中显示各种项目。我在下面附上了4张图片:

在这些图片中,您有不同的部分,例如About your hostAvailabilityReviewsGroup size up to 2 guestsGuest requirementContact Host 等。如何组织这样的视图?

这只是 TableView 或 CollectionView 中的一堆不同的单元格吗?由于我在主屏幕上单击的每个项目都具有非常相似的布局和完全相同的部分。或者这些只是放置在滚动视图上的视图?

【问题讨论】:

如果您想 100% 确定,可以在 jb 设备上使用 Reveal:marksands.github.io/2014/01/03/inspecting-third-party-apps.html 或不使用 jb:github.com/Naituw/IPAPatch 对我来说就像UITableView。是什么让你认为它是UICollectionView 【参考方案1】:

可能UITableViewUICollectionView,带有一组不同的单元格。所以他们的 cellForRowAtIndexPath: cellForItemAtIndexPath: 函数会为每个不同的部分返回不同的单元格类。

他们会有AboutYourHostCell 类、AvailabilityCell 类、ReviewsCell 类等。

可以通过将视图添加到UIScrollView 中来做到这一点,但这需要做很多工作,而且您会失去UITableViewUICollectionView 提供的一些不错的行为——比如突出显示单元格时您按住,然后动画更改。

【讨论】:

以上是关于AirBnb 如何创建具有不同单元格的集合视图?的主要内容,如果未能解决你的问题,请参考以下文章

给定具有多行标签的集合视图单元格的宽度,如何获得首选的 AutoLayout 高度?

具有动态内容的 UICollectionView(每个单元格的视图数量可变)

使用 Auto Layout 创建具有多个不同自定义单元格的 UITableView 具有几乎相同的子视图

如何在目标 c 的每一行上创建一个包含 3 个单元格的集合视图

如何在不丢失表格视图单元格的情况下将现有集合视图添加到表格视图

具有自我调整大小的单元格的集合视图不再可水平滚动