黑色半透明导航栏+ MKMapView - >设置地图中心在视觉上是不正确的

时间:2012-03-01 10:48:35

标签: iphone objective-c ios uinavigationcontroller mkmapview

我在半透明黑色导航,状态和搜索以及工具栏下的导航控制器中有一个地图视图。

地图的实际高度包括这些条形下方的区域。

+ 左侧附件按钮使地图中心位于Pin。

Photo1 Photo2

左图是在地图以针脚坐标为中心之前。

正确的是当地图以引脚坐标为中心时。

问题是中心应该是可见地图区域的中心,而不是整个地图区域。 (这会导致图钉不出现在地图的中心。

我可以做一些偏移或边界设置,以便Map View正确居中吗?

1 个答案:

答案 0 :(得分:0)

您可以为您的可见地图区域(导航栏下方)覆盖透明UIView(tView),获取他的观点,计算您需要的偏移量并再次设置setRegion。 (我猜你正在使用setRegion使地图居中):

CGPoint currentPoint = [mapView convertCoordinate:myPin.coordinate toPointToView:self.view];
CGRect tFrame = [tView frame];
tFrame.origin.y = currentPoint.y - tFrame.size.height;
tFrame.origin.x = currentPoint.x - (tFrame.size.width/2);

MKCoordinateRegion newRegion = [mapView convertRect:tFrame toRegionFromView:self.view];
[mapView setRegion:newRegion animated:YES];

您应该仔细检查tFrame,以便为应用程序设置最佳值。