【发布时间】:2012-06-07 04:05:55
【问题描述】:
好的,这是交易:
我有两种观点:简单和高级。在 iPad 上,它们带有一个大地图视图,带有一个可以移动以指示位置的标记。
每个视图都有一个不同的 MkMapView 实例。当我从一个切换到另一个时,我想让地图保持完全相同的位置和缩放级别,让用户感觉就像是同一张地图。
但是,每个视图的地图视图形状略有不同。这是因为高级搜索在地图上方有更多内容。
当我打开地图时(这是来自抽象超类的代码,所以两个实例都得到它),我设置区域和标记位置,如下所示:
[mapSearchView setRegion:[mapSearchView regionThatFits:[[BMLTAppDelegate getBMLTAppDelegate] searchMapRegion]]];
[myMarker setCoordinate:[[BMLTAppDelegate getBMLTAppDelegate] searchMapMarkerLoc]];
searchMapRegion 和 searchMapMarkerLoc 是静态的,反映当前显示的地图区域和标记位置(地图中心)。
问题来了:
因为地图的形状略有不同,所以总会有一些调整。这可以来回“弹跳”,因此每次切换时地图缩放都会不断减小,直到您看到整个世界。
我是否使用 regionThatFits 并不重要。即使使用此代码,也会发生同样的事情:
[mapSearchView setRegion:[[BMLTAppDelegate getBMLTAppDelegate] searchMapRegion]];
[myMarker setCoordinate:[[BMLTAppDelegate getBMLTAppDelegate] searchMapMarkerLoc]];
我想要的只是显示完全相同的缩放和中心。我不在乎高级视图是否被切断了一点。
我如何获得 $#@!! MapKit 停止调整缩放系数?
【问题讨论】:
标签: iphone ipad mapkit zooming region