MKMapView不允许在Ipod Touch OS 3.1.3上进行用户交互,在模拟器3.2 / 4.0上正常工作

时间:2010-09-02 11:07:58

标签: objective-c xcode mkmapview ipod-touch

我一直在编写和测试一个使用导航控制器,标签栏和表格视图的应用程序,如本教程视频所示:

我还编写了一个显示自定义注释的MapView页面。这似乎在我尝试过的每个版本的模拟器中都能正常工作。今天早上我终于在运行OS 3.1.3的Ipod Touch上运行了应用程序 - 一切都按预期工作,除了地图似乎根本不允许用户交互。我无法点击注释,当前位置或移动和缩放。

我已经完成了mapview中Interfaceview的所有设置,并确保勾选了所有“用户交互”,“允许多点触控”框。这似乎没有任何改变。

非常感谢任何帮助。

将Mapview放入视图中,如下所示:

// Grab the maps view controller ready for loading
MapView *childController = [[MapView alloc] initWithNibName:@"MapView" bundle:nil];
childController.title = @"View on Map";

// Push the new view controller onto the stack
[self.navigationController pushViewController:childController animated:YES];

[childController release];
childController = nil;

我也尝试在模态视图控制器中运行视图,看看会发生什么。视图已经显示,并且任何交互似乎都不起作用 - 除了底部的一个小部分,我将视图本身稍微缩短,以便它适合标签栏上方。此部分似乎在我的视图下方有另一个地图,它可以响应用户交互。所以有一个1厘米左右的块可以移动 - 我的视图似乎保持静止在它之上。

下面的视图似乎没有任何注释或当前用户位置。

1 个答案:

答案 0 :(得分:0)

好的,我已经解决了这个问题:

在我设置视图并加载注释的mapview.m文件中,在viewDidLoad函数中我有以下代码:

- (void)viewDidLoad {

    // More code before this..

    [mapView addAnnotations: eventPoints];

    // This is causing the problems on the ipod touch.
    // The view is added ON TOP of the first map..
    //[self.view addSubview:mapView];
    self.view = mapView;

    // More code after this..
}

mapView是

IBOutlet MKMapView *mapView;

在当前视图之上添加子视图不想工作。实际上将视图设置为带注释的新更新视图似乎工作正常。尽管如此,模拟器仍然可以工作而不是设备,这仍然很奇怪。

希望这有助于某人。