首页 > 解决方案 > 我的 UICollectionView 之一没有滚动或响应我的 UIScrollView 容器内的触摸事件 [令人费解]

问题描述

我有一个不寻常且具有挑战性的问题。我对 StackOverflow 进行了深入研究,但找不到任何解决方案。请不要问我的设计风格——一定是这样。

我有一个 UIPageViewController,其中包含一个 UIScrollView,其中包含 4 个 UICollectionView。这些集合视图中的每一个都应该可以水平滚动,但不能垂直滚动。滚动视图是必要的,因为屏幕不够大,无法显示所有 4 个集合视图。加载屏幕后,第 4 个集合视图不会立即可见。向下滚动后,第 4 个集合视图变得可见。

我遇到的问题是第四个集合视图不响应触摸。具体来说,它不会响应点击或滚动尝试。其他3个工作得很好。令人费解和奇怪的是,第 4 个与其他 3 个完全相同,委托和数据源设置正确并启用了用户交互。有问题的集合视图与其他集合视图之间唯一真正的区别是它在屏幕加载时不会立即可见。

当我尝试滚动时,它的行为就像我在尝试更改页面一样,因此 UIPageView 会更改页面。所以 CollectionView 根本没有注册任何触摸。我有一种预感,它要么与 PageView 中的 GestureRecognizer 有关,要么与初始加载时它在屏幕上不可见有关。

有什么想法吗?

标签: iosswiftuiscrollviewuicollectionviewuipageviewcontroller

解决方案


如果没有看到代码或情节提要的初始化,则不能 100% 确定,但最好的事情是可能存在视图重叠。您可以运行程序并单击 2 个重叠的矩形。这是Debug View Hierarchy. 它会在您的手机上显示您当前的框架,您可以看到以分层状态布局的视图。

在此处输入图像描述


推荐阅读