MapKit iPhone显示缩放控件
是否可以像我现在做的那样,使用MapKit在iPhone中显示地图,在地图上显示缩放控件MapKit iPhone显示缩放控件,iphone,objective-c,map,zooming,Iphone,Objective C,Map,Zooming,是否可以像我现在做的那样,使用MapKit在iPhone中显示地图,在地图上显示缩放控件 如果没有,我应该使用哪些标志或方法来增加和减少缩放,这样我就可以创建方法,只需按下按钮即可完成此操作。在我的头顶上,我不记得(在windows框上工作时)是否有显示缩放控件的开关。我假设您谈论的是显示缩放级别,因为默认情况下,您可以收缩/展开视图进行缩放 如果没有显示控件的开关,则需要创建自定义视图图层并将其放置在mapkit视图的顶部。然后需要调用不同的函数来更改缩放级别 这些功能都记录在mapkit文档
如果没有,我应该使用哪些标志或方法来增加和减少缩放,这样我就可以创建方法,只需按下按钮即可完成此操作。在我的头顶上,我不记得(在windows框上工作时)是否有显示缩放控件的开关。我假设您谈论的是显示缩放级别,因为默认情况下,您可以收缩/展开视图进行缩放 如果没有显示控件的开关,则需要创建自定义视图图层并将其放置在mapkit视图的顶部。然后需要调用不同的函数来更改缩放级别 这些功能都记录在mapkit文档中。只需在文档中心搜索MapKit 编辑: 根据文档,没有显示控件的开关,但“缩放启用”属性允许您打开和关闭该功能
因此,您可以订阅委托函数regionWillChange并使用mapView对象获取缩放级别,然后相应地设置图形。没有任何内置控件 有几点建议:
- 获取地图视图的区域
- 获取区域的跨度
- 将范围更改为所需的范围
- 将区域范围设置为新范围
- 将地图视图的区域设置为新区域
MKCoordinateRegion region = mapView.region;
MKCoordinateSpan span;
span.latitudeDelta = region.span.latitudeDelta*2;
span.longitudeDelta = region.span.longitudeDelta*2;
region.span = span;
[mapView setRegion:region animated:TRUE];
我认为你不应该这样做,预期的放大和缩小方式是使用捏手势。但是,如果您仍想继续操作,则应将按钮放置在
MKMapView
上,然后使用这些按钮修改swift 4的MKMapView
的区域属性,这就是我使用的:
func zoom(_ zoomin : Bool) {
var region = mapView.region;
var span = MKCoordinateSpan();
span.latitudeDelta = zoomin ? region.span.latitudeDelta / 2 : region.span.latitudeDelta * 2;
span.longitudeDelta = zoomin ? region.span.longitudeDelta / 2 : region.span.longitudeDelta * 2;
region.span = span;
mapView.setRegion(region, animated: true);
}
谢谢swift版本:var region=mapView.region;var span=MKCoordinateSpan();span.latitudeDelta=区域span.latitudeDelta*2;span.longitudeDelta=区域span.longitudeDelta*2;region.span=span;setRegion(区域,动画:true)代码>