触摸不适用于UIScrollView中的UITableView

时间:2017-01-03 18:14:37

标签: ios swift uitableview uiscrollview uicontainerview

我有这个奇怪的问题。要开始这一切,这就是我的视图层次结构 看起来像:

我有UIViewControllerUIScrollView,里面有三个独立的ContainerView's。每个ContainerView's frames(和相应的UIViewControllers)都是以编程方式设置的。

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

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

是否有人遇到过相同的问题或类似的问题,可以解释一下这个问题?

非常感谢任何帮助,意见或建议。

1 个答案:

答案 0 :(得分:0)

所以我解决了这个问题。对于其他有类似问题的人来说,这是因为UISrollView的基础内容视图还不够大。

即使UITableView,甚至其下的视图都可见,但触摸也无法触及,因为这些是通过UIScrollView contentView以某种方式注册的(对我来说,这是{{1}我在UIView之上添加了Interface Builder。

此外,如果您正在使用autoLayout,则必须更改Interface Builder中的contentViews约束,因为UIScrollView无法收听您的命令。