iphone - 将 UIButton 和其他 UIControl 对象放入 MKAnnotationView 中并允许用户交互

标签 iphone ipad mapkit mkannotation mkannotationview

我在 map 上有一个自定义注释 View ,其中有 UIButton在其中,但是UIButton按下时没有反应。我在注释 View 上的用户交互方面遇到两个主要问题:

  1. 按钮和其他控件没有响应。
  2. 我希望注释根据我的 - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent*)event 的实现来阻止触摸- 也就是说,如果我返回 YES,那么我不希望触摸被发送到 MKMapView (可能会选择注释 View 后面的其他注释),在这种情况下我想自己处理触摸。

我已经确定userInteractionEnabled设置为YES我研究了如何通过覆盖 MKAnnotationView 将触摸发送到自定义注释 View (我的 touchesBegan 的子类)等等 - 但似乎触摸通常会被取消(我想我已经设法获得 touchesEnded 几次) - 所以看起来甚至很难手动实现与自定义注释 View 的任何用户交互。

有谁对允许更多用户与 MKAnnotationView 进行交互有任何见解吗?对象?

最佳答案

我在同事的帮助下成功解决了这个问题。解决方案是重写 - (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent*)event。我们的假设是 MKAnnotationView (您的注释 View 必须继承它)会覆盖它以执行“错误”的操作(大概是这样注释选择不会在重叠注释之间​​被阻止)。因此,您必须重新重写它才能做正确的事情并返回适当的 UIView,然后系统将向其发送事件,用户将能够与其交互:)。这具有有益的(在本例中)副作用,即交互式注释会阻止对其后面的注释的选择。

关于iphone - 将 UIButton 和其他 UIControl 对象放入 MKAnnotationView 中并允许用户交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6862901/

相关文章:

iphone - iOS - 每个 View 仅触摸一次

ios - 如何检测两个 CALayer 是否重叠?

ios - 自定义 MKAnnotation 按钮

html - 在 Mobile Safari/iOS/iPad 中控制捏缩放并将其隔离到一个元素

ios - 以编程方式从数组中选择 map 注释

swift - 点击 showsUserLocation-dot 的功能

iphone - NSMutable 数组 - 分配和保留对象

iphone - 恢复应用内购买时没有出现 'buy' 提示?是否可以?

iphone - 显示新 View Controller 的最佳实践(iPhone)

ios - 如何停止在 iOS7 的引导访问中唤醒后出现状态栏?