【发布时间】:2015-07-23 21:32:31
【问题描述】:
我需要有这样屏幕的 iOS 应用:
这个想法是当用户开始向下滚动第一个 UIView 以向上移动,直到第二个 UIView 到达它会粘住的顶部,并且只有 UICollectionView 会继续向上移动。
目前我正在使用这种结构
- UIScrollView(主滚动)
- UIView(一些横幅)
- UIView (UISegmentedControl)
- UICollectionView(带有项目的网格,禁用滚动,使用主滚动)
我设法做到了,但我需要在代码中手动设置 UICollectionView 高度约束(根据网格中的所有项目计算),以便出现在 UIScrollView 中(其他一切都由 Storyboard 中的 AutoLayout 处理)。这样做的问题是 UICollectionView 认为所有单元格都是可见的并加载它们,所以整个回收和重用的东西不起作用。更糟糕的是,我在 UICollectionView 上使用 willDisplayCell 方法在显示最后一个单元格时加载更多数据,但现在它一次加载所有页面。
我的问题(其实是2个)
- 如何解决上述问题?
- 实现此功能的正确方法是什么?也许我的整个方法在概念上是错误的?
【问题讨论】:
-
你最后是怎么做到的?我想实现同样的目标。
标签: ios swift uiview uiscrollview uicollectionview