2012-03-01 79 views
3

我在导航控制器中具有半透明黑色导航,状态和搜索以及工具栏中的地图视图。黑色半透明导航栏+ MKMapView - >设置地图中心在视觉上不正确

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

+左附件按钮使地图中心在引脚上。

Photo1Photo2

左边的图像是位于地图中心到销的坐标之前。

正确的是当地图在中心到销的坐标。

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

有一些偏移或边界的设置,我可以做这样的地图视图将正确中心?

+0

You coul d设置您的mapView以具有可见区域的大小。是否有任何具体的理由让地图进入导航栏? – wizH 2012-03-01 12:02:34

+0

:D使用不透明的状态栏和导航栏,它们不会与地图重叠。否则,您还可以通过将空间留在添加地图的视图的顶部位置来更改地图的框架。 – HarshIT 2012-03-01 12:04:56

+0

我的意思是BlackNavigationBar和BlackStatusBar – HarshIT 2012-03-01 12:10:58

回答

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所以您可以为您的应用设置最佳值。