使用MKMapView和可触摸的子视图创建视图

时间:2010-11-24 20:04:28

标签: iphone uiview mkmapview subview

是否可以使用MKMapview和另一个子视图创建视图。特别是我有一个地图视图,我一直在尝试添加第二个子视图(到superview,而不是MKMapView。)问题是,虽然可以看到两个视图对UIView的任何触摸都不是MKMapView传递给地图。我甚至试图移动地图,使它们不重叠,但另一个UIView相对于地图而不是窗口定位自己。

另一个好奇心是代码在模拟器上工作正常,但在运行3.1.3的测试设备上却没有。这可能是3.1.3版MKMapView的问题,还是模拟器中的怪癖?

我的代码是

combinedView = [[UIView alloc] initWithFrame:self.view.frame];

self.awView = [[AdWhirlView alloc] init];
awView = [AdWhirlView requestAdWhirlViewWithDelegate:self];
self.awView.delegate = self;

[combinedView addSubview:awView];

mapView = [[MKMapView alloc] initWithFrame:CGRectMake(0,50,320,430)];
mapView = (MKMapView*)self.view;
mapView.delegate = self;
//[self.view insertSubview:mapView atIndex:0];

[combinedView addSubview:mapView];

//mapView.showsUserLocation = YES;
// Create a location coordinate object
CLLocationCoordinate2D coordinate;

coordinate.latitude = 40.1;
coordinate.longitude = -76.30575;

// Display map
mapView.region = MKCoordinateRegionMakeWithDistance(coordinate, 40000, 40000);

[combinedView bringSubviewToFront:awView];

感谢您的任何建议。

1 个答案:

答案 0 :(得分:0)

不太熟悉AdWhirlView,但您是否可能需要为此设置框架? CGRectMake(0,0,320,50);还是什么?

否则,您可能希望使用两个视图的autoresizeMasks。我知道你肯定可以拥有一个带有兄弟视图的MKMapView,它们都可以正常工作。