1.9 在MKMapView中添加交互性标注图标 [iOS开发中
1. 本节课将为您演示,如何在地图视图中,添加支持交互动作的标注图标。首先打开项目资源文件夹,查看项目中已经导入的图片文件。


3. 该图片将作为自定义的标注图标,然后在左侧的项目导航区,打开视图控制器的代码文件。

4. 现在开始编写代码,实现在地图视图中,添加交互图标的功能。




8. 初始化一个地图视图,并使地图视图的显示区域,和设备的屏幕尺寸相同。



11. 接着初始化一个地理坐标,使地图加载该坐标位置上的地理信息。

12. 接着根据地理坐标,初始化一个地理区域,并设置缩放比例。









21. 标注视图同表格视图相似,也是采用相同的复用机制。在此设置一个标识符,作为标注视图的复用标识。

22. 然后从地图视图中,获取一个具有相同标识符的,并且可被复用的标注视图。

23. 如果没有可被复用的标注视图,则初始化一个新的标注视图。

24. 接着初始化一个信息类型的按钮控件,当用户点击该按钮时,将弹出一个警告窗口。



27. 接着选择项目中导入的图片文件,作为标注视图的标注图片。






33. 初始化一个警告弹出窗口,并设置弹出窗口的标题和主体内容。

34. 接着创建一个默认样式的按钮,并将该按钮添加到弹出窗口。当点击该按钮时,关闭弹出窗口。


36. 添加一个代理方法,用来监听标注视图被添加到地图视图中的事件。

37. 遍历所有被添加到地图视图中的标注视图,并在控制台输出其标题信息。

38. 添加一个代理方法,用来监听标注视图处于选择状态时的事件。

39. 当选择某个标注视图时,在控制台输出相关的坐标、标题、子标题等信息。接着点击左上角的[编译并运行]按钮,启动模拟器预览项目。

40. 在弹出的模拟器中,点击此处的标记图标。
41. 此时会打开一个标注视图,点击左侧的信息按钮,将弹出一个警告窗口。

42. 在弹出的警告窗口中,显示了您设置的详细信息。点击确定按钮,关闭警告窗口。

43. 最后点击左上角的[停止]按钮,关闭模拟器,并结束本节课程。


本文整理自:《app开发中的神兵利器》,真正的[手把手]教学模式,用最快的速度上手iOS开发,苹果商店App Store免费下载:https://itunes.apple.com/cn/app/id1209739676,或扫描本页底部的二维码。课程配套素材下载地址:资料下载
