我一直在编写和测试一个使用导航控制器,标签栏和表格视图的应用程序,如本教程视频所示:
我还编写了一个显示自定义注释的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厘米左右的块可以移动 - 我的视图似乎保持静止在它之上。
下面的视图似乎没有任何注释或当前用户位置。
答案 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;
在当前视图之上添加子视图不想工作。实际上将视图设置为带注释的新更新视图似乎工作正常。尽管如此,模拟器仍然可以工作而不是设备,这仍然很奇怪。
希望这有助于某人。