如何创建扩展的MKMapView

时间:2016-09-20 13:37:51

标签: objective-c cocoa mkmapview

我有一个应用程序,它在几个不同的屏幕上使用地图。所有地图都应显示相同的基本信息(注释和叠加),但每个实例都会向地图添加不同的附加注释和叠加。我想创建一个类,它实现了通用功能,其行为与MKMapView完全相同。这怎么可能?

我有三个想法可以解决这个问题,但似乎没有一个好的解决方案。

  1. 子类MKMapView。这种方法的问题在于地图从它的委托中获取有关它的注释和覆盖的信息,它应该是子类(视图......)本身,因此添加额外的数据是有问题的(我不能设置除了类本身之外的委托。)

  2. 换行MKMapView。我可以创建一个NSObject / UIView子类,其中包含MKMapView,但要么我必须将所有地图的方法代理到我的班级,要么使用知识访问地图内部对象(myMapView.mapView.xxx ...)。

  3. 创建一个委托类(NSObject具有MKMapViewDelegate个函数)。然后,委托类可以实现常见行为。此解决方案也存在类似于第一个的问题。

  4. 我怎样才能优雅地解决这个问题?

1 个答案:

答案 0 :(得分:0)

创建一个类并添加Map以查看该类。 现在将该类作为要添加Mapview的所有类的父类。 如果要添加注释和叠加,请向父类提供数据。