如何将UIView添加到MKMap?

时间:2010-04-10 20:22:28

标签: iphone

如何将UIView添加到MKMap,这样当我们移动地图时,UIView也会随地图一起移动,我的意思是说我们将UIView(或任何UI组件)添加到MKMap然后我们要么缩放/移动地图周围,​​UIView保持固定在其初始位置,我需要作为地图移动UIView也随之移动。

2 个答案:

答案 0 :(得分:1)

假设我正确理解了这一点,您希望能够在MKMapView上的特定坐标处添加自定义视图。

如果是这样,MKMapView将它们称为Annotations,MKMapView类公开addAnnotation:和addAnnotations:方法。这些方法需要传递一个符合MKAnnotation协议的对象,这意味着你的对象必须提供标题,副标题和坐标(这是一个CLLocationCoordinate2D)。

重要的是要注意;这个对象不是你的UIView,它只是一个为你的视图提供数据的对象。

为了实际添加新的,你需要一个实现MKMapViewDelegate协议的对象,我建议你使用UIViewController子类(包括你的mapview等)。

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {

  // Instiate your UIView. The annotation passed into this method is the annotation your passed to the mapview's addAnnotation method, so you can cast this and access any application specific data.
}

这就是它。向mapview添加注释,mapview要求它的委托为该注释提供视图。

答案 1 :(得分:1)

您可能需要查看MKAnnotationView类参考,尤其是有关管理标注视图的部分。

如果控制级别不够,请查看here