要求:
我目前正在开发一个有趣的配方应用程序,它使用UICollectionView
以与UITableView
相同的方式运行,即仅仅是一个列表。
当屏幕加载时,用户将看到与特定“配方”相关的单元格。每个单元格都有一个标签,用于显示配方名称和“添加成分”按钮。
实施例
当添加“成分”时,我想要一个单独的单元格,它只包含一个UILabel
,与新成分一起显示在它所属的Recipe cell
下面。实施例//
问题:
我很难想出在cellForItemAt indexPath
中实现这一点的逻辑,也不确定那里的逻辑是否足以解决这个问题。我已经为“配方”和“成分”创建了自定义单元格,并且想要输入如何实现控制流,如果不是UIKit
个对象的正确结构,使这个正确执行。
感谢您的投入。
答案 0 :(得分:1)
保留要显示的项目列表(例如,在数组中)。在DataSource方法中,您始终引用该列表。因此,当询问项目数时,您返回该列表的计数,当在cellForIndexPath中填充单元格时,您将从该列表中获取单元格标题。
现在,当您要添加单元格时,请先将项目添加到列表中。然后在CollectionView上调用insertItems(at :)。这将触发对cellForIndexPath的调用,您必须在调用其indexPath时准备新单元格。您只需跟踪每个项目应显示的单元格类型(例如,使用带有“type”和“title”的字典作为列表中的项目。)