iOS/Swift |无限视图矩阵:ScrollView还是CollectionView?

iOS/Swift |无限视图矩阵:ScrollView还是CollectionView?,ios,swift,matrix,scrollview,collectionview,Ios,Swift,Matrix,Scrollview,Collectionview,我正在创建一个无限的视图“矩阵”。当我加载MainView时,我会围绕它创建视图。然后,例如,如果我滚动到右视图,我会围绕右视图创建新视图 我试图计划我想做什么: 我要问两个问题: 1-我应该使用ScrollView并在其中添加视图,还是使用CollectionView并在其中添加collectionViewCells(大小为MainView)?哪一个更好,为什么?我打算使用ScrollView和views,但CollectionView允许使用可重用的单元,这些单元在无限矩阵中可能非常强大

我正在创建一个无限的视图“矩阵”。当我加载MainView时,我会围绕它创建视图。然后,例如,如果我滚动到右视图,我会围绕右视图创建新视图

我试图计划我想做什么:

我要问两个问题:

1-我应该使用ScrollView并在其中添加视图,还是使用CollectionView并在其中添加collectionViewCells(大小为MainView)?哪一个更好,为什么?我打算使用ScrollView和views,但CollectionView允许使用可重用的单元,这些单元在无限矩阵中可能非常强大


2-由于用户可以上下滚动,如何在“索引-1”处添加视图/集合视图单元格,而不重新加载或移动所有内容?

。创建自己的
UIView
子类,该子类具有
uipangestrerecognizer
。识别平移后,更新子视图的位置。在边缘周围添加和删除子对象,这样子对象就不会太多。(当视图移到屏幕外时,您可以
从SuperView中删除
)。

格雷厄姆是对的,遵循MVC模型,您不应该关心隐藏/远距离视图:当您要显示它们时(如tableview…),您(或控制器…)要求您的模型使用正确的“键”显示数据


一个很好的例子是MapKit地图:使用平铺,您可以使用类似的方法。

您正在编写其他视图,主视图,这是UIViewController还是UIView?主视图是ScrollView或CollectionView中的UIView,暂时不知道我需要保留所有视图,即使用户离开,他也可以回来并再次显示它,这就是我考虑UICollectionView和重用的原因cells@Aximem如果你有一个庞大的用户界面,将所有视图都存储在内存中可能会杀死你的应用程序,或者至少会使用户界面负载过重。对于您使用的大型设计,这不是一个好的实践。我会以这个解决方案作为指导。好吧,我明白了,我真的认为UICollectionView可以帮助我解决这个内存问题,但正如你所说的,我可能会显示很多YYYY视图,这可能会杀死应用程序或减慢用户交互。