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 的单选/多选模式下进行选择/取消选择