16

IOS 的集合视图编程指南


注册您的单元格和补充视图

您可以通过编程方式或在应用程序的故事板文件中配置集合视图的单元格和视图。

  • 要在情节提要中配置单元格和视图:

    在情节提要中配置单元格和补充视图时,您可以通过将项目拖到集合视图上并在那里进行配置来实现。这会在集合视图和相应的单元格或视图之间创建关系。

    • 对于单元格,将 Collection View Cell 从对象库中拖放到您的集合视图中。将单元格的自定义类和集合可重用视图标识符设置为适当的值。
    • 对于补充视图,从对象库中拖动一个 Collection Reusable View 并将其放到您的集合视图上。将视图的自定义类和集合可重用视图标识符设置为适当的值。

只要布局设置为自定义而不是流,我就无法设法将集合可重用视图拖放到故事板中的集合视图中。如果我在布局设置为流动时放下一个,一旦我将布局设置回自定义,它就会消失。

如果我将它放在集合视图之外,作为顶级对象,它不会在运行时使用,即使类和标识符都设置正确。相反,我收到一条错误消息,告诉我必须注册补充视图。如果我手动注册它,它想使用我在情节提要中的视觉设计。

关于如何工作的任何建议?

4

3 回答 3

11

只有当您的布局是 UICollectionViewFlowLayout 的子类时,您才能执行此操作。

  1. 不要在情节提要中指定自定义布局。
  2. 选择流程布局并设计您的补充视图。
  3. 然后在您的 viewcontroller 中以编程方式创建新布局对象并将其分配给 collectionview。
  4. 在布局对象上调用 InvalidateLayout
  5. 将您在故事板中设计的补充视图与您的自定义布局一起使用

这对我有用。希望它对其他人也有帮助!

于 2015-05-14T03:48:47.803 回答
5

您不能使用自定义布局将补充视图添加到情节提要。补充视图由布局对象管理。只有layout知道它的位置,number..没有必要通过layout对象来实现补充视图。这是布局对象的关注点。UICollectionViewFlowLayout提供补充视图(节页眉/页脚)。所以你可以在故事板中设计它。如果您使用自定义布局,情节提要如何知道它是否支持补充视图。所以它会把这份工作交给你。您必须为补充视图注册类/笔尖

于 2013-05-28T06:56:56.390 回答
1

当前最佳答案的评论似乎是最好的解决方案。

如果您的自定义布局是 UICollectionViewFlowLayout 的子类,请打开故事板编辑器并在 Collection View 对象下的左侧对象列表中选择流布局(黄色立方体)。然后在“Identity Inspector”中选择你的后代类。而已。无需更改代码

- 阿德纳科

于 2018-01-13T02:51:17.697 回答