在这个过程中需要注意几点:
1.大头针A作为一个普通大头针,其中最好保存自定义大头针视图C所需要的模型以便根据不同的模型初始化视图。
2.自定义大头针视图C的大头针模型B中不需要title、subtitle属性,最好设置为只读;模型中最后保存自定义大头针视图C所需要的布局模型数据。
3.只有点击非B类大头针时才新增自定义大头针,并且增加时要首先移除其他B类大头针避免重叠(一般建议放到取消大头针选择的代理方法中)。
4.通常在自定义大头针视图C设置大头针模型时布局界面,此时需要注意新增大头针的位置,通常需要偏移一定的距离才能达到理想的效果。
运行效果:

使用自带的地图应用
除了可以使用MapKit框架进行地图开发,对地图有精确的控制和自定义之外,如果对于应用没有特殊要求的话选用苹果自带的地图应用也是一个不错的选择。使用苹果自带的应用时需要用到MapKit中的MKMapItem类,这个类有一个openInMapsWithLaunchOptions:动态方法和一个openMapsWithItems: launchOptions:静态方法用于打开苹果地图应用。第一个方法用于在地图上标注一个位置,第二个方法除了可以标注多个位置外还可以进行多个位置之间的驾驶导航,使用起来也是相当方便。在熟悉这两个方法使用之前有必要对两个方法中的options参数做一下简单说明:
| 键(常量) | 说明 | 值 |
| MKLaunchOptionsDirectionsModeKey | 路线模式,常量 |
MKLaunchOptionsDirectionsModeDriving 驾车模式 MKLaunchOptionsDirectionsModeWalking 步行模式 |
| MKLaunchOptionsMapTypeKey | 地图类型,枚举 |
MKMapTypeStandard :标准模式 MKMapTypeSatellite :卫星模式 MKMapTypeHybrid :混合模式 |
| MKLaunchOptionsMapCenterKey | 中心点坐标,CLLocationCoordinate2D类型 | |
| MKLaunchOptionsMapSpanKey | 地图显示跨度,MKCoordinateSpan 类型 | |
| MKLaunchOptionsShowsTrafficKey | 是否 显示交通状况,布尔型 | |
| MKLaunchOptionsCameraKey |
3D地图效果,MKMapCamera类型 注意:此属性从iOS7及以后可用,前面的属性从iOS6开始可用 |










