iOS - UITableViewCell 内的 UIScrollView 内的 UIView 未触发 UITapGestureRecognizer

Posted

技术标签:

【中文标题】iOS - UITableViewCell 内的 UIScrollView 内的 UIView 未触发 UITapGestureRecognizer【英文标题】:iOS - UITapGestureRecognizer not fired from UIView inside UIScrollView inside UITableViewCell 【发布时间】:2016-07-28 21:47:22 【问题描述】:

我有一个自定义 UIView 子类,它附加了一个 UITapGestureRecognizer。 我正在尝试在 UITableViewCell 内的 UIScrollView 内的 UIView(容器)内使用此自定义视图。

所以:

UITableViewCell

•UIScrollView

••UIView(UIScrollView 上正确 contentSize 的容器)

•••一组带有 UITapGestureRecognizer(子类)的 UIViews

似乎如果我不在 UIScrollView 中使用“容器”视图,则可以很好地检测到水龙头。但是 contentSize 不正确,我在 UIScrollView 中的一些自定义视图不在屏幕上,无法访问。

如果我确实在 UIScrollView 中使用了“容器”视图,则滚动视图的 contentSize 是正确的,但不会检测到任何自定义视图点击。

我尝试了以下各种变体,但均未成功:

tapGesture.cancelsTouchesInView = false
scrollView.canCancelContentTouches = false
scrollView.userInteractionEnabled = true
containerView.userInteractionEnabled = true

【问题讨论】:

【参考方案1】:

好吧,由于某种原因,我无法让它工作,甚至尝试将 UIScrollView 和 UIView 子类化为容器视图。

我最终只是将 UICollectionView 添加到子类 UITableViewCell,然后将 UITableViewController 设置为 UICollectionViewDataSource 和 UICollectionViewDelegate 来处理项目选择。

【讨论】:

以上是关于iOS - UITableViewCell 内的 UIScrollView 内的 UIView 未触发 UITapGestureRecognizer的主要内容,如果未能解决你的问题,请参考以下文章

iOS 11 中 UITableViewCell 内的 UIImageView 的固定大小

自动滚动到放置在 UITableViewCell 内的 textView 光标在 iOS11 中不起作用

从 uitableviewcell 内的文本字段中关闭 iPad 上的键盘

Swift 在 UITableViewCell 内的 UICollectionView 的单选/多选模式下进行选择/取消选择

iOS:在 UITableViewCell 中显示所需 UITextField 的正确方法

iOS Autolayout 2 多行 UILabel 在 UITableViewCell 中具有额外的填充