我有一个自定义的MKAnnotation和相应的MKAnnotationView。当你按下其中一个注释时,我打开一个自定义的标注气泡,这实际上只是另一个MKAnnotation& MKAnnotationView显示高度自定义的“标注”(即使它实际上是另一个注释)。第二个详细的注释占用了很多空间,这很好。
我想要完成的是禁用点击此“标注”注释。它上面有几个按钮,在按下时反应很好,但如果你略微错过,你将关闭这个注释(按下注释并在地图上取消选择注释)或选择其后的另一个注释。
如何保持对此特定注释的所有接触以保持此注释?我想如果你触摸这个注释的任何地方,只有那个注释会接触到。如果您触摸其他任何位置,地图将正常反应(关闭选定的注释,选择其他注释,无论如何)。
编辑1: 我试图添加一个alpha为0.1的背景视图,但它仍然触及。我在MKAnnotationView中的代码:
UIView *backgroundView = [[UIView alloc] initWithFrame:self.frame];
[backgroundView setBackgroundColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:0.1]];
[backgroundView setUserInteractionEnabled:YES];
[self addSubview:backgroundView];
可悲的是,这仍然触及
编辑2: 我设法稍微解决了这个问题,但还有一个主要问题。我没有使用UIView作为我的主视图类型,而是使用UIButton,这使我能够根据自己的喜好添加子视图。然后我将目标设置为整个按钮的虚拟选择器(因此触摸背景会触发虚拟选择器)。这非常适合捕获触摸,但有一个例外。
我还没弄清楚究竟哪个部分被触摸了,但是有时只有在我触摸的按钮后面有另一个注释时,触摸仍然会通过按钮。这种情况不会每次都发生,但有时只会发生。
任何人都知道为什么会这样?
答案 0 :(得分:0)
您可以在自定义标注视图的背景添加透明视图,以限制mapview上的触摸。