1

我遇到了一个奇怪的 iPhone 模拟器问题。我创建了一个使用 MKMapView 来显示地图的应用程序。我希望这张地图居中,因此使用了以下代码。

- (void)viewDidLoad {
    [super viewDidLoad];

    CLLocationCoordinate2D location;

    location.latitude = 47.379022;
    location.longitude = 8.541001;

    MKCoordinateSpan span;

    span.latitudeDelta = 0.05;
    span.longitudeDelta = 0.05;

    MKCoordinateRegion region;

    region.center = location;
    region.span = span;

    [self.mapView setMapType:MKMapTypeStandard];
    [self.mapView setRegion:region animated:YES];
}

这段代码在一个全新的“HelloMap”Xcode 项目中完美无缺,并做了它应该做的事情——将地图集中在苏黎世。

但是在另一个项目中使用完全相同的代码会将地图放到南极洲附近的某个地方。我已经尝试使用“产品”->“清洁”来清洁建筑环境......没有任何变化。

同样从模拟的 iPhone 中删除应用程序也不会改变。我还使用终端检查并从相应文件夹中删除任何剩余的应用程序。

甚至似乎对 Xcode 项目所做的更改并没有(总是)转移到 iPhone 模拟器。例如,当上面的源代码被注释掉时,MKMapView 甚至会加载......

我的想法在这里用完了......有什么意见吗?

[编辑]

通过转到“iOS-Simulator”->“Inhalte und Einstellungen zurücksetzen”重置整个模拟器使其仅工作一次(!!)...

[编辑]

这似乎是一个运行时问题。将上面的代码放入“- (void)viewDidAppear:(BOOL)animated” 使其行为正确 - 至少几乎是这样。用户现在看到从“默认位置”到我的坐标的动画飞行。

我需要将代码放在哪里,以便在加载视图时地图位于正确的位置?

4

1 回答 1

0

我正在使用 viewWillAppear 并且遇到了同样的问题,将您的建议与 viewDidAppear 一起使用,我的问题就解决了。

于 2013-07-03T05:27:44.760 回答