【发布时间】:2015-05-13 14:59:10
【问题描述】:
问题
我有一个包含全屏 MKMapView 的视图。 MapView 的下半部分被一个 TableView 覆盖,该 TableView 具有半透明的单元格,以便地图显示出来。
当我以注释坐标为中心时,例如当前位置,注释视图被 TableView 挡住了。
- (void)centerOnCurrentLocation
{
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(self.locationManager.location.coordinate, 50000, 50000);
[self.mapView setRegion:[self.mapView regionThatFits:region] animated:YES];
}
尝试的解决方案
我首先尝试以编程方式移动地图以偏移中心,将注释向上移动。如果我关闭动画,这种方法会起作用,尽管它不是一个简单的解决方案。我也不想关闭动画。
相反,我认为如果我将 MapView 从屏幕顶部延伸到与 TableView 相同的高度,那么 MapView 的中心将正是我想要的位置。它不起作用!当我在较大的 MapView 上设置中心坐标时,注释仍然出现在屏幕的中心,而不是较大的 MapView 的中心。似乎 MKMapView 在计算其中心时正在使用视图的可见区域。
这是我使用放大的 MapView 以当前位置为中心时希望看到的。
如果只有 MKMapView 有一个 centerOffset 属性,可以让您将中心移动一些 CGPoint。
有没有人有一个简单、优雅的解决方案来偏移 MapView 的中心?
【问题讨论】:
-
你试过用
[self.myMapView setVisibleMapRect:myMapRect edgePadding:mapInset animated:NO]
标签: ios objective-c ios8 mkmapview