0

我有一个项目,我想在其中显示叠加层以在地图上定位人员。我很难遵循 MVC 模式,因为我从未实践过它。

在数据库中,我将保存一个位置(在地图坐标中)和用于识别一个人的图像(叠加层的图像)。

如果 2 个或更多在同一位置,它们将被分组在另一个“组”覆盖下。触摸覆盖时,我想根据其类型(“组”或“单个”)显示不同的信息。

这是我的问题:我显然需要继承一个Overlay具有位置和图像属性的超类来重新定义该overlayTouched:方法。但这段代码通常是 MVC 模式的视图代码,但覆盖是一个模型对象,因为它将被保存,所以我很困惑。

我应该如何设计这个?

4

1 回答 1

1

您不应子类化Overlay以向其添加触摸事件,而是创建一个新的UIView,YourNewView

YourNewView将“具有”的实例Overlay,并将模型所需的所有方法委托给Overlay

例如。如果你有一个并且touchesEndedYourNewView希望它将覆盖保存到数据库中,你会做

//in touchesEnded
[self.overlay saveToDb];

以此类推,所有的来电都会转给OverlayClass

于 2012-06-28T08:47:02.943 回答