MkMapView setRegion动画可防止注释视图上的触摸事件

时间:2010-04-02 03:38:56

标签: iphone cocoa-touch iphone-sdk-3.0 mkmapview

我们有一个带有一堆Image Annotation的MKmapView,其中每个Image注释都会响应触摸 通过覆盖AnnotationView子类的这些方法:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
-(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

我们的地图区域使用

进行更新
[MkMapView setRegion:animated:]

每当收到新位置时,距离旧位置足够远,无法发挥作用。

我注意到,如果我们将动画标记设置为 YES ,很少会检测到我们的注释上的触摸(可能是由于主线程正在忙于动画之间的事实两个地图区域。 当我们将动画标志设置为时,一切都很好,但地图转换可能(或可能不会)变得生涩。

我的问题是,这是否是[MkMapView setRegion:animated]函数的动画标志的预期行为,或者是否存在此问题的解决方法。

提前致谢

1 个答案:

答案 0 :(得分:4)

通常,动画的mapview在动画期间将其userInteractionEnabled属性设置为no。如果需要更改此行为,则应该对视图进行子类化并覆盖相应的方法。

或者,您可以在动画持续时间内在地图视图上放置透明视图,以捕捉特定类型的操作,例如响应双击以停止区域中的更改。