如果我是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文件更清晰,更小。
我在做什么愚蠢的错误?
答案 0 :(得分:0)
根据Apple的documentation,您不应该继承MKMapView。
虽然不应该继承MKMapView类本身,但您可以通过提供委托对象来获取有关地图视图行为的信息。