1

我有一个用户可以在地图上拖动的 MKAnnotationView。

用户很难拖动图钉。我尝试增加帧大小并使用巨大的自定义图像。但似乎并没有真正改变拖动的命中区域大于默认值。

因此,在任何事情发生之前,我必须尝试点击/拖动大约十次。

MKAnnotationView *annView = [[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"bluedot"] autorelease];

UIImage *image = [UIImage imageNamed:@"blue_dot.png"];

annView.image = image;
annView.draggable = YES;
annView.selected = YES;
return annView;

我在这里想念什么?

编辑:

事实证明,问题是需要先触摸 MKAnnotationView,然后才能拖动它。我遇到了麻烦,因为附近有很多别针,而且我的 MKAnnotationView 非常小。

4

2 回答 2

1

我没有意识到需要触摸 MKAnnotationView 才能拖动它。

为了解决这个问题,我创建了一个定期选择 MKAnnotationView 的计时器。

NSTimer *selectAnnotationTimer = [[NSTimer scheduledTimerWithTimeInterval:0.2 target:self selector:@selector(selectCenterAnnotation) userInfo:nil repeats:YES] retain];  

及其调用的方法:

- (void)selectCenterAnnotation {
    [mapView selectAnnotation:centerAnnotation animated:NO];    
}    
于 2012-06-06T08:06:38.600 回答
0

您可以在鼠标按下时选择注释,而不是使用计时器。这样您就不会弄乱注释选择,也不会为每个注释始终运行一个计时器。

我在开发 mac 应用程序时遇到了同样的问题,在鼠标按下时选择注释后,拖动效果很好。

于 2014-09-02T08:47:00.400 回答