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の回答を使用しました。コードの一部が1回だけ使用されたことを確認するためです。また、リージョンが設定されなかった理由は、このコード行が気に入らなかったためです。
MKCoordinateRegion adjustedRegion = [MapView regionThatFits:viewRegion];