我遇到了一个奇怪的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 undEinstellungenzurücksetzen”只使它工作一次(!!)......
[编辑]
这似乎是一个运行时问题。将上面的代码放入“ - (void)viewDidAppear:(BOOL)动画”使其行为正确 - 至少差不多。用户现在可以看到从“默认位置”到我坐标的动画飞行。
在加载视图时,我需要在何处放置代码以使地图位于正确的位置?
答案 0 :(得分:0)
我正在使用viewWillAppear并遇到同样的问题,请使用viewDidAppear的建议,我的问题解决了。