0

在我的 iOS 应用程序中,我使用 route me lib 在离线模式下显示地图。我在地图上有一些标记,现在我想让它们可拖动。我使用了这段代码:

- (void) mapView:(RMMapView *)map didDragMarker:(HotspotMarker*)marker withEvent:(UIEvent *)event
{
    UITouch* touch = [[event allTouches] anyObject];
    if([[event allTouches] count] == 1 && touch.phase == UITouchPhaseMoved)
    {
        CGPoint position = [touch locationInView:[touch.view superview]];
        CGSize delta = CGSizeMake((position.x-(marker.position.x)),
                                  (position.y-(marker.position.y)));
        [marker moveBy: delta];
        [marker setProjectedLocation:[[_mapView.contents projection]
                                      latLongToPoint:[_mapView pixelToLatLong:marker.position]]];
    }
}

当我缓慢移动鼠标时,标记会很好地拖动,但是当我稍微快速移动鼠标时,我会松开轨道。

所以我查看了示例“MapTestbedFlipMaps”项目并运行它......并遇到了同样的问题。

然后我尝试用手势识别器自己做......但我仍然有这个问题。

任何想法 ?

编辑:问题不在于标记的图像大小,我尝试使用 100x100 图像并得到相同的结果。

4

1 回答 1

0

尝试这个:

- (void) mapView:(RMMapView *)map didDragMarker:(RMMarker *)marker withEvent:(UIEvent *)event
{

    CGPoint position = [[[event allTouches] anyObject] locationInView:mapView];

    CGRect rect = [marker bounds];

    [self.mapView.markerManager moveMarker:marker AtXY:CGPointMake(position.x,position.y +rect.size.height/3)];

}
于 2013-02-06T21:56:44.500 回答