UICollectionView:显示相互引用的不同单元格,Swift 3.0

UICollectionView: Displaying different cells that reference each other, Swift 3.0

要求:

我目前正在开发一个有趣的 Recipe 应用程序,它利用 UICollectionView 以与 UITableView 相同的方式运行,即,只是一个列表。

加载屏幕时,用户将看到与特定 "Recipe" 有关的单元格。每个单元格都有一个显示食谱名称的标签和一个 "add ingredient" 按钮。

Ex

添加 "ingredient" 后,我想要一个单独的单元格,它只包含一个 UILabel,显示在它所属的 Recipe cell 下,新的成分。例如//

问题:

我很难想出在 cellForItemAt indexPath 中实现它的逻辑,我也不确定单独的逻辑是否足以解决这个问题。我已经为 "Recipe" 和 "Ingredient" 创建了 自定义单元格 ,如果不是正确的结构,我想输入如何实现控制流UIKit 个对象,以使其正确执行。

感谢您的意见。

保留要显示的项目列表(例如,在数组中)。在 DataSource 方法中,您始终引用该列表。因此,当询问项目数时,您 return 该列表的计数,当填充 cellForIndexPath 中的单元格时,您会从该列表中获取单元格标题。

现在,当您想要添加一个单元格时,请先将一个项目添加到您的列表中。然后在 CollectionView 上调用 insertItems(at:)。这将触发对 cellForIndexPath 的调用,您必须在调用其 indexPath 时准备新单元格。您只需要跟踪每个项目应显示的单元格类型(例如,使用带有 "type" 和 "title" 的字典作为列表中的项目)。