任何人都可以提出一个很好的教程来实现iPhone MKMapView
中MKPinAnnotationView
的拖动功能吗?实现MKPinAnnotationView拖动功能?
0
A
回答
3
要使注释可拖动,请将注释视图的可拖动属性设置为YES。
这通常在viewForAnnotation委托方法中完成,因此请确保您将MKMapView
委托人设置为self
,并将其与.h文件中的委托人相符。
例如:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
{
if ([annotation isKindOfClass:[MKUserLocation class]])
return nil;
static NSString *reuseId = @"pin";
MKPinAnnotationView *pav = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:reuseId];
if (pav == nil)
{
pav = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:reuseId];
pav.draggable = YES; // Right here baby!
pav.canShowCallout = YES;
}
else
{
pav.annotation = annotation;
}
return pav;
}
好了,所以这里是管理注释拖动动作的代码:
- (void)mapView:(MKMapView *)mapView
annotationView:(MKAnnotationView *)annotationView
didChangeDragState:(MKAnnotationViewDragState)newState
fromOldState:(MKAnnotationViewDragState)oldState
{
if (newState == MKAnnotationViewDragStateEnding) // you can check out some more states by looking at the docs
{
CLLocationCoordinate2D droppedAt = annotationView.annotation.coordinate;
NSLog(@"dropped at %f,%f", droppedAt.latitude, droppedAt.longitude);
}
}
这应该帮助!
4
相关问题
- 1. 拖动MKPinAnnotationView抛出错误
- 2. MKPinAnnotationView可拖动选项
- 3. 如何实现拖放功能extjs 4.0.2a
- 4. 实现谷歌地图般的图像拖动功能?
- 5. 在Angularjs中拖动功能
- 6. 拖动功能错误
- 7. 实现parallel_for_each功能
- 8. 实现`distrib`功能
- 9. MKPinAnnotationView不移动
- 10. 如何实现功能自动化
- 11. 我们如何在html5中实现拖放功能
- 12. 如何在上传文件中实现Facebook拖放功能
- 13. 为WPF启用拖放功能的ListView实现?
- 14. 如何在android中实现拖放功能?
- 15. 为Angular UI日历实现外部元素的拖放功能
- 16. 我想实现使用jQuery砌体布局的拖放功能
- 17. 如何在可可中实现拖放功能?
- 18. 如何在Flex列表控件中实现自定义拖动功能?
- 19. 拖放功能
- 20. 实现拖放
- 21. 现在可以在Gmail中实现浮动功能或类似功能吗?
- 22. 实现根计算功能
- 23. 实现摇回家功能
- 24. 好友功能和实现
- 25. OpenCV的(功能未实现)
- 26. Python实现吊颈功能
- 27. 实现matlab查找功能
- 28. 实现地图功能
- 29. 实现“更新”功能
- 30. 实现搜索功能sailsjs
重复:http://stackoverflow.com/questions/11927692/ios-mkmapview-draggable-annotations和其他许多人 – MCKapur