質問

Aaaarg ... OK、落ち着いてみましょう。

MKMapViewの領域の設定に問題がありましたか? うまくいきませんでした。

このコード:

-(void)setUserCenteredSpan:(MKCoordinateSpan)span{ // for this example, span = {0.5, 0.5}
    // Current region (just initialised)
NSLog(@"%f, %f - %f, %f",   self.region.center.latitude,
                            self.region.center.longitude, 
                            self.region.span.latitudeDelta, 
                            self.region.span.longitudeDelta);
    // New Region
MKCoordinateRegion region = MKCoordinateRegionMake([[[self userLocation] location] coordinate],
                                                   span);
NSLog(@"%f, %f - %f, %f",   region.center.latitude,
                            region.center.longitude, 
                            region.span.latitudeDelta, 
                            region.span.longitudeDelta);
    // Region saved in MKMapView
[self setRegion:region animated:NO];
NSLog(@"%f, %f - %f, %f",   self.region.center.latitude,
                            self.region.center.longitude, 
                            self.region.span.latitudeDelta, 
                            self.region.span.longitudeDelta);
}

そのログを返します:

30.145127, -40.078125 - 0.000000, 0.000000
0.000000, 0.000000 - 0.500000, 0.500000
0.000000, 0.000000 - 0.000000, 0.000000

理由を知っていますか??!

どうもありがとう、X(

マート

編集:もちろん、インターネットに接続されたデバイスを使用しています。

役に立ちましたか?

解決

以前のログを正確に理解していませんが、エラーがどこにあったかはわかります。

インスタンス化されたMKMapViewはフレームで初期化されたのではなく、&res;に設定されたautoresizingMaskで初期化されました。 0。

setRegionメソッドが呼び出されたとき、ビューはまだフレーム化されていません。リージョンの値はビューフレームに従って計算されるため、これらの値は見つかりませんでした。

setRegionを実行する前にフレームを設定するだけで、正常に表示されます。

バイ!

他のヒント

最初のログは self.region.center.latitude を使用しますが、 MKCoordinateRegionMake への呼び出しのどこにも表示されません。このログは、リージョンを設定するために使用しているものは何でも、lat / longが0/0であることを示しています...

自動サイズ変更マスクの設定は私を助けてくれました。

[_mapView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];   
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top