如何防止使用 UICollectionView 滚动 UIScrollView

Posted

技术标签:

【中文标题】如何防止使用 UICollectionView 滚动 UIScrollView【英文标题】:How to prevent scrolling UIScrollView with UICollectionView 【发布时间】:2016-12-26 07:19:55 【问题描述】:

UICollectionView弹跳 启用 但是我不能使用它,因为UIScrollView 正在同时滚动。 当我在UICollectionView 内滚动时如何防止滚动UIScrollView

这不起作用:

myScrollView.isExclusiveTouch = true

【问题讨论】:

设置 UIScrollView 的 ContentSize 为 UIView 大小。 我建议不要将 UICollectionView 放在 UIScrollView 中,因为它有问题并且可能导致意外行为。我建议考虑在 UICollectionView 中插入页眉或页脚视图,以在 UIScrollView 中显示您想要的内容。 @ImadAli 它不起作用。 【参考方案1】:

您可以将 UIScrollView 的 contentSize 设置为:

斯威夫特:

let scrollableSize = CGSize(width: <View Width>, height: <View Height>)
scrollView.contentSize = scrollableSize

目标-C:

CGSize scrollableSize = CGSizeMake(<View Width>, <View Height>);
[myScrollView setContentSize:scrollableSize];

另一个选项可能是:

myScrollView.delegate = self;

停止水平滚动:

func scrollViewDidScroll(_ scrollView: UIScrollView) 
    sender.contentOffset.x = 0.0

停止垂直滚动:

func scrollViewDidScroll(_ scrollView: UIScrollView) 
    sender.contentOffset.y = 0.0

【讨论】:

以上是关于如何防止使用 UICollectionView 滚动 UIScrollView的主要内容,如果未能解决你的问题,请参考以下文章

如何防止重新排序 UICollectionView 中的最后一个单元格?

如何设计和设置 UICollectionView 的高度并防止其折叠?

如何使 UICollectionView 的高度可自动调整和滚动?

防止 Flutter WebView 溢出水平滚动轮播?

防止 uicollectionview 单元格窗体在有空间时向右移动 - SWIFT

UICollectionView 的 UICollectionReusableView 防止/阻止对 UICollectionViewCell 的点击