ios - 复用 collectionView

标签 ios swift architecture uicollectionview

我里面有 VC 和一个 collectionView。所有管理 Collection View 的代码我都放在那个 VC 的扩展中。但现在我需要在另一个不同的 VC 中使用这个 Collection View ,我不想复制/粘贴这个扩展。我试过将 UICollectionView 子类化,但它不会在内部调用委托(delegate)/数据源方法。这是我的扩展程序的签名:

func scrollViewDidEndDecelerating(scrollView: UIScrollView)
func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize

以及一些私有(private)函数和属性。如果我想经常重用它们,我应该把所有这些方法放在哪里?

最佳答案

您应该将所有这些逻辑放入单独的 VC 中并重用该 VC,而不仅仅是尝试重用 Collection View 。

因此,只要您需要此 Collection View 的“副本”,您实际上都会添加一个子 VC 并将该 VC 中的 View 添加为 subview 。

关于ios - 复用 collectionView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37457452/

相关文章:

iphone - UIView 更改内部导航 View

ios - 找不到 WeatherKit 历史数据和归因问题

ios - firebase ios 大部分时间都不工作

arrays - 黑屏的tableview

swift - func collectionView 在 dataTask() 方法完成之前被调用

architecture - 工作流基础设计问题/注意事项?

php - 追溯记录+评论的策略

ios - 连接到 LTE 时,应用程序无法访问互联网连接

android - 如何获取其他 fragment 的 ViewModel

ios - 有没有办法使用 Appcelerator Titanium 修改 iOS webView 中的上下文菜单?