【问题标题】:How to set UIView to receive input on top of a mapView如何设置 UIView 在 mapView 上接收输入
【发布时间】:2020-05-30 00:42:02
【问题描述】:

这是一个奇怪的具体问题,但我似乎无法弄清楚或找到答案。我有一个悬挂在导航栏上的横幅(音量低时通过滑动约束可见)。我想通过按钮或手势识别器使此横幅可点击,两者似乎都不起作用,并且点击时地图仍在其下方控制

'

我试过了:

  • 在bannerView上设置isExclusiveTouch = true
  • 将该横幅视图带到该导航视图的顶部 (bringSubViewToFront)
  • 在interfaceBuilder的底部设置BannerView

不知道还能做什么。如果不清楚,抱歉,如果需要,我可以添加更多代码示例。

【问题讨论】:

  • 您是否为横幅设置了启用用户交互?
  • 我只是仔细检查了一下,它已启用,但这是个好主意,没想到。

标签: ios swift xcode uikit


【解决方案1】:

搜索了一段时间后,我找到了答案。我不得不重写父 UIView 的 hitTest 函数。我必须这样做,因为为了“显示”bannerView,我正在更新约束以将其向下滑动(在其父视图之外)。由于它超出了其父视图的约束,因此横幅忽略了用户输入。

obj-c 和 swift 的代码示例可以在这里找到:

Capturing touches on a subview outside the frame of its superview using hitTest:withEvent:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多