当 UITableView 仍在滚动时,如何在 tableHeaderView 上启用触摸事件?
Posted
技术标签:
【中文标题】当 UITableView 仍在滚动时,如何在 tableHeaderView 上启用触摸事件?【英文标题】:How to enable touch events on tableHeaderView while the UITableView is still scrolling? 【发布时间】:2016-01-29 02:37:43 【问题描述】:我在情节提要中创建了一个 UITableViewController,并添加了一个 UIView 作为 tableHeaderView。我在 tableHeaderView 中有一个 MKMapView,但我的问题是 tableHeaderView 中的地图在 tableView 完全停止滚动之前没有收到触摸。相反,如果在滚动结束减速之前发生触摸,则滚动会继续,这是不受欢迎的行为。
我已经尝试将 UITableView 子类化以覆盖 hitTest,但无法弄清楚要返回什么,因为 tableHeaderView 中的事件输出如下:
<MKNewAnnotationContainerView: 0x1589ac3a0; frame = (0 0; 375 310.5); autoresize = W+H; autoresizesSubviews = NO; layer = <CALayer: 0x170c3c5e0>>
那么,有没有办法在scrollView减速的时候同时和tableHeaderView交互呢?
【问题讨论】:
【参考方案1】:似乎 TableHeaderViews 并不是真正为这样的事情而设计的。您只需在 UITableView 顶部添加 MKMapView,这将解决您的问题。
【讨论】:
虽然这可以解决问题,但 tableHeaderView 是我的最佳选择。 tableView 需要在整个屏幕上可滚动,在 tableView 顶部添加另一个视图不是最佳选择。以上是关于当 UITableView 仍在滚动时,如何在 tableHeaderView 上启用触摸事件?的主要内容,如果未能解决你的问题,请参考以下文章