任何人都可以提出一個很好的教程來實現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