ios - 触摸在 UIScrollView 内的 UITableView 上不起作用

标签 ios swift uitableview uiscrollview uicontainerview

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

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

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

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

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

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

最佳答案

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

即使UITableView,甚至它下面的 View 都是可见的,触摸也无法到达它,因为这些是通过UIScrollView contentView以某种方式注册的(对我来说,这是我在 Interface Builder 中添加到 UIScrollView 之上的 UIView)。

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

关于ios - 触摸在 UIScrollView 内的 UITableView 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41449854/

相关文章:

ios - Xcode 9 Swift 4 Playgrounds UIGestureRecognizer 不工作

ios - Xcode状态: "Verify the value of the CODE_SIGN_ENTITLEMENTS"

ios - RootView 快速导航

带有 "where Self"子句的 Swift 协议(protocol)

iOS 如何将 View 添加到屏幕中心并将其粘贴到 UITableViewController 上的屏幕中心?

ios - 数组中的图像未显示在 UICollectionview 中

iOS-13 - UITableViewCell 的 CornerRadius

ios - UITableView 单元格内的 UICollectionViewCell 和自动布局

iphone - 使用 UINavigation Controller 设置 UITableViewController 的 MangedObjectContext

ios - 在进行内部测试时没有收到 crashlytics 崩溃的消息