两个UIViews& UIScrollView中的一个UICollectionView(或更好的方法)

时间:2015-07-23 21:32:32

标签: ios swift uiview uiscrollview uicollectionview

我需要有这样的屏幕的iOS应用程序:

screen

这个想法是当用户开始向下滚动第一个UIView向上移动直到第二个UIView到达它将坚持的顶部并且只有UICollectionView将继续向上移动。

目前我正在使用此结构

  • UIScrollView(主卷轴)
    • UIView(一些横幅)
    • UIView(UISegmentedControl)
    • UICollectionView(带项目的网格,禁用滚动,使用主滚动)

我设法做到了,但是我需要在代码中手动设置UICollectionView高度约束(基于网格中的所有项目计算),以便出现在UIScrollView中(其他一切都由Storyboard中的AutoLayout处理)。这个问题是UICollectionView认为所有单元都是可见的并加载它们,所以整个回收和放大。重用的东西不起作用。这甚至是最糟糕的,因为我在UICollectionView上使用willDisplayCell方法在显示最后一个单元格时加载更多数据,但现在它一次加载所有页面。

我的问题(实际上他们是2)

  1. 如何解决上述问题?
  2. 实现此功能的正确方法是什么?也许我的整个方法在概念上是错误的?

1 个答案:

答案 0 :(得分:0)

集合视图本身就是一个滚动视图。那么也许你只能使用带有剖面甚至自定义布局的集合视图来实现相同的功能?