【问题标题】:Could I reuse UICollectionView? don’t want to create collectionView again and again我可以重用 UICollectionView 吗?不想一次又一次地创建collectionView
【发布时间】:2018-03-14 08:36:47
【问题描述】:

我可以将UICollectionView 用于同一VC 或不同VC 或UISplitViewController 中的多个collectionViews 吗?不想一遍又一遍地创建UICollectionView

【问题讨论】:

  • 您可以根据需要创建一个具有集合视图的 Xib 文件,并在您想要视图中的集合视图时调用 Xib。 xib 文件将符合集合视图协议
  • 不要使用storyboard和xib。以编程方式完成所有工作?????????
  • 这与您必须以编程方式创建一个实现 UIView 和 Collection 委托的 Swift 文件并执行此操作相同。这是可能的,但从逻辑上讲,有很多方法可以做您想做的事
  • 我该怎么办?你能告诉我一种方式吗?
  • @ΒασίληςΔ。 xib如何解决他的问题?无论如何都必须有两个对象(所以不能真正重用它),他唯一重用的是代码,他也可以通过编程方式完成

标签: ios swift uikit swift4 ios11


【解决方案1】:

您可以“重复使用”它,但由于它只能在视图层次结构中出现一次(只能有一个superview),因此您不能同时显示两次。但是应该可以在一个 VC 中展示它,然后在展示另一个 VC 时通过并在那里展示它。但是,通过在第二个 VC 中呈现它,它将从第一个的 view 中删除,因此您将有很多工作来管理这种传递和重用。我不认为这是值得的。所以即使我说你可以做到,我还是建议不要这样做。

【讨论】:

  • SplitViewController 怎么样?我正在以编程方式创建 collectionView。我编辑了我的问题。
  • @Andreas 如果您希望它同时出现在屏幕上两次,那是不可能的。它是一个视图对象。单个对象可以在一个地方出现,但不能同时出现在两个地方(就像你作为一个人不能同时出现在两个地方一样)
  • 我认为那个班级不能做这样的事情。我问 bcoz 还有其他方法可以做。没有别的办法吧?
  • @Andreas 我知道从一个类创建一个对象是相对重量级的操作,但这似乎是一种极端的情况——你会得到很多额外的代码来管理正确的重用,这样你就不会必须创建几个对象。此外,正如我所说,您不能在屏幕上的多个位置显示相同的对象 - 您必须创建一个副本才能在屏幕上显示两次