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 元素,然后在编辑器菜单下查找排列。在那里你会发现

发送到前面

发回

转发

向后发送

于 2012-05-18T00:20:59.090 回答