首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iPhone - MKOverlay和MKOverlayView逻辑

iPhone - MKOverlay和MKOverlayView逻辑
EN

Stack Overflow用户
提问于 2011-08-29 06:14:41
回答 1查看 1.4K关注 0票数 0

有一点我想知道,也许有人可以用简单的话比医生更好地解释我…

当您想要在MKMapView上添加覆盖时,首先要添加遵循MKOverlay协议的内容。

然后,调用(MKOverlayView*)mapView:(MKMapView*)mapView viewForOverlay:(id)overlay,您必须返回一个MKOverlayView或继承它的内容。

addOverlay中添加的覆盖图的作用是什么,因为它不显示任何内容?为什么不直接添加一个子视图,就像对视图使用addSubview一样,并将显示所需的变量放在“里面”呢?为什么要运行这样一个两部分的进程?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-29 08:01:08

model-view-controller (MVC) pattern中,存储数据的对象与处理表示的对象是分离的:实现MKOverlay的对象的角色是管理数据存储,而MKOverlayView对象的角色是处理地图上的表示。

例如,你可能有一个存储租户、房租、财产税等数据的ApartmentBuilding对象,你可能想在一个在地图上显示你的房地产帝国的应用程序中使用这个对象,但你也可能想在一个计算你的税单或生成一个定期维护日历的应用程序中使用相同的ApartmentBuilding数据。

如果为您的ApartmentBuilding建模的代码与在地图上显示您的建筑的代码完全分开,那么您可以将您的ApartmentBuilding模型与不同的视图对象(例如MaintenanceCalendarViewTaxSpreadsheetView )配对,并且您的代码更易于维护和重用。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7224327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档