UICollectionView:显示相互引用的不同单元格,Swift 3.0
UICollectionView: Displaying different cells that reference each other, Swift 3.0
要求:
我目前正在开发一个有趣的 Recipe 应用程序,它利用 UICollectionView
以与 UITableView
相同的方式运行,即,只是一个列表。
加载屏幕时,用户将看到与特定 "Recipe" 有关的单元格。每个单元格都有一个显示食谱名称的标签和一个 "add ingredient" 按钮。
Ex
- 食谱:"Chicken Parmesan"[添加成分]
- 食谱:"Vegetable Omelette"[添加成分]
- 食谱:"Shrimp Fried Rice"[添加成分]
添加 "ingredient" 后,我想要一个单独的单元格,它只包含一个 UILabel
,显示在它所属的 Recipe cell
下,新的成分。例如//
- 食谱:"Chicken Parmesan"[添加成分]
- 成分:“8oz 鸡胸肉
- 食谱:"Vegetable Omelette"[添加成分]
- 食谱:"Shrimp Fried Rice"[添加成分]
问题:
我很难想出在 cellForItemAt indexPath
中实现它的逻辑,我也不确定单独的逻辑是否足以解决这个问题。我已经为 "Recipe" 和 "Ingredient" 创建了 自定义单元格 ,如果不是正确的结构,我想输入如何实现控制流UIKit
个对象,以使其正确执行。
感谢您的意见。
保留要显示的项目列表(例如,在数组中)。在 DataSource 方法中,您始终引用该列表。因此,当询问项目数时,您 return 该列表的计数,当填充 cellForIndexPath 中的单元格时,您会从该列表中获取单元格标题。
现在,当您想要添加一个单元格时,请先将一个项目添加到您的列表中。然后在 CollectionView 上调用 insertItems(at:)。这将触发对 cellForIndexPath 的调用,您必须在调用其 indexPath 时准备新单元格。您只需要跟踪每个项目应显示的单元格类型(例如,使用带有 "type" 和 "title" 的字典作为列表中的项目)。
要求:
我目前正在开发一个有趣的 Recipe 应用程序,它利用 UICollectionView
以与 UITableView
相同的方式运行,即,只是一个列表。
加载屏幕时,用户将看到与特定 "Recipe" 有关的单元格。每个单元格都有一个显示食谱名称的标签和一个 "add ingredient" 按钮。
Ex
- 食谱:"Chicken Parmesan"[添加成分]
- 食谱:"Vegetable Omelette"[添加成分]
- 食谱:"Shrimp Fried Rice"[添加成分]
添加 "ingredient" 后,我想要一个单独的单元格,它只包含一个 UILabel
,显示在它所属的 Recipe cell
下,新的成分。例如//
- 食谱:"Chicken Parmesan"[添加成分]
- 成分:“8oz 鸡胸肉
- 食谱:"Vegetable Omelette"[添加成分]
- 食谱:"Shrimp Fried Rice"[添加成分]
问题:
我很难想出在 cellForItemAt indexPath
中实现它的逻辑,我也不确定单独的逻辑是否足以解决这个问题。我已经为 "Recipe" 和 "Ingredient" 创建了 自定义单元格 ,如果不是正确的结构,我想输入如何实现控制流UIKit
个对象,以使其正确执行。
感谢您的意见。
保留要显示的项目列表(例如,在数组中)。在 DataSource 方法中,您始终引用该列表。因此,当询问项目数时,您 return 该列表的计数,当填充 cellForIndexPath 中的单元格时,您会从该列表中获取单元格标题。
现在,当您想要添加一个单元格时,请先将一个项目添加到您的列表中。然后在 CollectionView 上调用 insertItems(at:)。这将触发对 cellForIndexPath 的调用,您必须在调用其 indexPath 时准备新单元格。您只需要跟踪每个项目应显示的单元格类型(例如,使用带有 "type" 和 "title" 的字典作为列表中的项目)。