触摸不适用于 UIScrollView 内的 UITableView

Touches doesn't work on UITableView inside UIScrollView

我有这个奇怪的问题。首先,这就是我的视图层次结构 看起来像:

我有一个 UIViewController 和一个 UIScrollView,里面有三个独立的 ContainerView'sContainerView's frames(以及相应的 UIViewControllers)中的每一个都以编程方式设置。

我用UIView.animate(...)方法打开第二个ContainerView。在这个 UIView/UIViewController 里面我有一个 UITableView。问题是只有前五个(出于某种原因和第六个的一半,但也许这是一个线索)UITableViewCell's 是可选的。我还有大约五个 UITableViewCell's 由于某种原因无法选择。

我没有任何 UITapGestureRecognizer's 这对我见过的其他一些人来说是个问题。此外,如果我将 TouchesBegan 添加到持有它的 UITableViewUIViewController 中,它的行为方式相同。也就是说,只有当我触摸屏幕上可选择 UITableViewCell' 的同一部分时,它才会打印出来。

是否有人遇到过相同的问题或类似的问题可以对此有所了解?

非常感谢任何帮助、意见或想法。

所以我解决了这个问题。对于遇到类似问题的任何其他人,这是因为 UISrollView 的底层 contentView 不够大。

即使 UITableView,甚至它下面的视图是可见的,触摸也无法触及它,因为它们以某种方式通过 UIScrollView contentView 注册(对我来说,这是一个 UIView 我在 Interface Builder 上面添加了 UIScrollView)。

此外,如果您使用的是 autoLayout,则必须更改 Interface Builder 中的 contentViews 约束,因为 UIScrollView.contentSize 不会费心听您的命令。