当地图视图被子类化时,区域错误

时间:2014-06-09 12:49:30

标签: ios mkmapview

如果我是mkmapview的子类,我无法以编程方式放大到完整范围。如果我没有子类,则缩放按预期工作。

我的mkmapview子类:

MyMapView.h

     #import <MapKit/MapKit.h>

    @interface MyMapView : MKMapView  {

    }

    -(id)initWithLocation:(NSInteger)location;

    @end

MyMapView.m

    #import "MyMapView.h"

    @implementation MyMapView

    -(id)initWithLocation:(NSInteger)location; {
        self = [super init];
        if (self) {
        }
        return self;
    }

我的viewcontroller.m:

    MyMapView *theMap = [[MyMapView alloc] initWithLocation:0];
    theMap.frame = CGRectMake(0, 0, 320, 320);
    [self.view addSubview:theMap];            

    float lat = 33.78;
    float lon = -84.56;

    CLLocationCoordinate2D newCenter = CLLocationCoordinate2DMake(lat, lon);

    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance (newCenter, 10, 10);
    [theMap setRegion:region animated:YES];

生成的地图视图区域缩小得比我想要的要远得多。我知道10米可能比适合的更紧,但我希望地图可以尽可能地放大。地图完成缩放后,我仍然可以手动放大2个级别。

我可以通过在主视图控制器中包含所有代码来修复整个问题,但我想稍微抽象一下地图并使我的viewcontroller.m文件更清晰,更小。

我在做什么愚蠢的错误?

1 个答案:

答案 0 :(得分:0)

根据Apple的documentation,您不应该继承MKMapView。

  

虽然不应该继承MKMapView类本身,但您可以通过提供委托对象来获取有关地图视图行为的信息。