我正在尝试为 MKmap 设置坐标和区域。我编写的代码如果我把它放在 viewDidAppear 中就可以工作,但是我不希望它出现在这个方法中,因为我不希望每次出现视图时都设置它。
这是我试图在这些方法中实现的代码
//set the map delegate
MapView.delegate = (id)self;
//set the co-ords
CLLocationCoordinate2D zoomLocation;
zoomLocation.latitude = LAT_POSN;
zoomLocation.longitude= LON_POSN;
//create region
MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(zoomLocation, startZoom, startZoom);
MKCoordinateRegion adjustedRegion = [MapView regionThatFits:viewRegion];
[MapView setRegion:adjustedRegion animated:YES];
编辑: startZoom 是一个常数,我已经记录它以确保在设置区域之前它在那里
我试过使用
if (self.isMovingToParentViewController )
为了让它在第一次调用视图时运行,但它仍然显示相同的结果。
这就是它应该的样子。
但这就是我得到的。
有谁知道这可能是为什么?谢谢
答案:我使用了 tkanzakic 答案来确保我的某些代码只使用了一次。另外,没有设置区域的原因是它不喜欢这行代码。
MKCoordinateRegion adjustedRegion = [MapView regionThatFits:viewRegion];