1

デリゲートがファイルの所有者に設定されたnibファイルのビューにmapViewがあり、アウトレットはIBOutlet MKMapView * mapViewに設定されています。

私が抱えている問題は、マップが他のすべてのオブジェクトの上にあることです。UIView を追加すると、マップの下にあるため表示されません。

なぜこれが起こるのでしょうか?私は前にこの問題を抱えていませんでした

ありがとう。

4

3 に答える 3

3

mkmapview にラベルやコントロールを追加する必要があるのはなぜですか。代わりに、そのデリゲートを使用してオーバーレイまたは注釈を追加できます。また、マップビューが画面全体に表示されるという問題がある場合は、そのフレームを設定してください。

その他の場合は、問題をより明確に説明してください。

私たちの議論によると、関数を使用できます:-

[self.view bringSubViewToFront:yourView];
于 2012-05-17T21:31:12.457 に答える
3

答えは非常に簡単です。作成したオブジェクトをサブビューとして MapView に追加する必要があります。

たとえば、UILabel を MapView に追加する方法を次に示します。これをinitで行うだけです

- (void)viewDidLoad
{
    [super viewDidLoad];

    // Create the label
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 50, 320)];
    label.backgroundColor = [UIColor whiteColor];
    label.text = @"I'm on top of the Map!";

    // Add the label to the mapView
    [self.mapView addSubview:label];

    // Release the label if you are not using ARC
    [label release];
}

編集: この概念は、UISegmentedControl などの他のオブジェクトにも適用されることに注意してください。

于 2012-05-18T00:06:23.213 に答える
1

最も簡単な方法は、インターフェイス ビルダーで「Z」の順序を変更することです。ビューまたはその他の UI 要素を選択し、Editor メニューで Arrange を探します。そこにあなたが見つけるでしょう

前に送る

背面へ移動

転送する

後方に送ります

于 2012-05-18T00:20:59.090 に答える