10

背景

我在 a 中嵌入了UICollectionViewa UIScrollView,它几乎可以完美运行。

目标

可滚动元素到达其 contentViews 的末尾后应该无缝地通过滚动。当我在 UIScrollView 上向下滑动时,它应该向下滚动,以便 UICollectionView 占据大约 90% 的屏幕,然后继续滚动 collectionView。反之亦然,当我在 collectionView 上向上滚动并到达 collectionView 内容的顶部时,scrollview 应该开始向上滚动。

问题

1) 当我在 collectionView 上向上滚动时,它会滚动到顶部并停止。如果我向下轻弹几次,它仍然会反弹 collectionView 而不是向上滚动 scrollView。为了让父 ScrollView 向上滚动,我必须再次“故意”点击 collectionView 一次。

见动图:
双弹跳

我想这与它有关,CancelContentTouches但我无法获得正确的组合。

2)当我向下滚动时,同样的事情,一旦滚动视图到达 contentView 的末尾,它就会停止并反弹。

见动图:
向下滚动并坚持

注意:我意识到不建议将 UICollectionView 放在 UIScrollView 中。我尝试了下面列出的替代方案,但我无法通过将我的顶视图放在标题中来达到预期的效果。我希望能够独立滚动两者,所以我决定使用 scrollview/collectionView 组合。

查看层次结构

MainViewController
- ScrollView
- Profile Stats
- CollectionViewContainerView
--- CollectionView

其他人出于某种原因希望将 collectionViews 放入 scrollViews 的资源:
我尝试了它们,但它们不适用于我的用例。

4

1 回答 1

1

如果您在另一个滚动视图或它的子类中使用滚动视图或它的子类,那么它就会发生。

现在,你可以做一件事。禁用一个滚动(推荐内部滚动视图)并实现滚动视图的委托scrollViewDidScroll或其他更合适的并手动滚动内部滚动视图(通过设置content offset内部滚动视图)。

于 2018-01-13T05:37:02.513 回答