![]() |
1
30
如果您仅使用iOS 7+,则有一个新的
|
![]() |
2
29
你可以使用
|
![]() |
3
21
我只是花了一些时间为我正在构建的一个应用程序做这个。以下是我的想法:
|
![]() |
4
15
|
|
5
9
下面是使用Swift 3重写的代码 MKMapView+ZoomLevel 和@T.Markle回答:
在视图控制器中使用的示例:
|
![]() |
6
2
|
|
7
2
使用此示例可以锁定最大缩放范围,也可以限制最小缩放范围
|
|
8
2
如果您的目标是iOS 13+,请使用MKMapView
请参见此处的苹果文档: https://developer.apple.com/documentation/mapkit/mkmapview/3114302-setcamerazoomrange |
![]() |
9
1
这个
因此,要控制最大缩放,请执行以下操作:
创建的子类
地图视图.h
MapView.m
然后,访问滚动子视图并查看
|
![]() |
10
0
拉斐尔·彼得格罗索(Raphael Petegroso)的文章带有扩展的MKMapView,经过一些小的修改后效果非常好。 下面的版本也更加“用户友好”,因为一旦用户放开屏幕,它就会优雅地“捕捉”到定义的缩放级别,在感觉上类似于苹果自己的弹跳滚动。 编辑:此解决方案不是最佳解决方案,会破坏/损坏地图视图,我在此处找到了更好的解决方案: How to detect any tap inside an MKMapView . 这允许您拦截挤压和其他运动。 MyMapView.h
MyMapView.m
对于硬限制,请使用以下命令:
|
![]() |
11
0
下面的代码适用于我,概念上易于使用,因为它基于米的距离设置区域。 将以下扩展添加到MapViewDelegate
然后定义MKCoordinateRegion的扩展,如下所示。
|
![]() |
12
-1
我利用的MapView代理包括: -mapViewDidFinishRendering -mapViewRegionDidChange 我的解决方案背后的前提是,由于卫星视图渲染的区域没有数据,因此始终是相同的。这个可怕的形象( http://imgur.com/cm4ou5g )如果我们可以放心地依赖失败案例,我们就可以将其作为确定用户看到了什么的关键。在贴图渲染之后,我拍摄了渲染贴图边界的屏幕截图,并确定了平均RGB值。基于该RGB值,我假设所讨论的区域没有数据。如果是这种情况,我会将贴图弹出到正确渲染的最后一个跨度。 我唯一的全局检查是当它开始检查地图时,您可以根据需要增加或减少该设置。下面是将完成此任务的原始代码,并将整理一个示例项目以供贡献。如果您能提供任何优化,我们将不胜感激,并希望能有所帮助。
|
![]() |
mikko · SwiftUI如何在不同堆栈中实现同一视图的平滑动画 5 月前 |
![]() |
routern · 如何组合contextMenu和圆角矩形? 6 月前 |
![]() |
DevHome98 · 3D触摸不适用于设备swift 1 年前 |
![]() |
dunoiww · 从全屏返回时如何触发onAppear 1 年前 |
![]() |
Community wiki · iPhone上ivar的继承问题 1 年前 |
![]() |
Community wiki · 查找iOS日历 1 年前 |
![]() |
Community wiki · 有效的IPhone编程技术[关闭] 1 年前 |