在我的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图像并得到相同的结果。
答案 0 :(得分: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)];
}