UICollectionView:显示彼此引用的不同单元格,Swift 3.0

时间:2017-01-30 10:18:33

标签: ios swift uicollectionview uicollectionviewcell

要求:

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

当屏幕加载时,用户将看到与特定“配方”相关的单元格。每个单元格都有一个标签,用于显示配方名称和“添加成分”按钮。

实施例

  • 食谱:“鸡肉巴马干酪”[添加成分]
  • 食谱:“蔬菜煎蛋”[添加成分]
  • 食谱:“虾炒饭”[添加成分]

当添加“成分”时,我想要一个单独的单元格,它只包含一个UILabel,与新成分一起显示在它所属的Recipe cell下面。实施例//

  • 食谱:“鸡肉巴马干酪”[添加成分]
  • 成分:“8oz鸡胸肉
  • 食谱:“蔬菜煎蛋”[添加成分]
  • 食谱:“虾炒饭”[添加成分]

问题:

我很难想出在cellForItemAt indexPath中实现这一点的逻辑,也不确定那里的逻辑是否足以解决这个问题。我已经为“配方”和“成分”创建了自定义单元格,并且想要输入如何实现控制流,如果不是UIKit个对象的正确结构,使这个正确执行。

感谢您的投入。

1 个答案:

答案 0 :(得分:1)

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

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