【问题标题】:Touches doesn't work on UITableView inside UIScrollView触摸在 UIScrollView 内的 UITableView 上不起作用
【发布时间】:2017-05-17 22:04:23
【问题描述】:

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

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

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

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

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

非常感谢任何帮助、输入或想法。

【问题讨论】:

    标签: ios swift uitableview uiscrollview uicontainerview


    【解决方案1】:

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

    即使UITableView,甚至它下面的视图是可见的,触摸也无法到达它,因为这些是通过UIScrollView contentView 注册的(对我来说,这是我在界面中添加的UIView UIScrollView 之上的构建器)。

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

    【讨论】:

      猜你喜欢
      • 2010-11-24
      • 2013-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-12
      • 1970-01-01
      相关资源
      最近更新 更多