2012-11-07 60 views
0

在我的iOS應用中,我使用路由me lib在離線模式下顯示地圖。 我在地圖上有一些標記,現在我想讓它們可拖動。我用這個代碼:iOS路由我可拖動標記丟失跟蹤(即使在樣本中)

- (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的圖像,並得到了相同的結果。

回答

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)]; 

}