- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试为 MKmap 设置坐标和区域。如果我将它放在 viewDidAppear 中,我编写的代码可以工作,但是我不希望它出现在这种方法中,因为我不希望每次出现 View 时都设置它。
这是我试图在这些方法中实现的代码
//set the map delegate
MapView.delegate = (id)self;
//set the co-ords
CLLocationCoordinate2D zoomLocation;
zoomLocation.latitude = LAT_POSN;
zoomLocation.longitude= LON_POSN;
//create region
MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(zoomLocation, startZoom, startZoom);
MKCoordinateRegion adjustedRegion = [MapView regionThatFits:viewRegion];
[MapView setRegion:adjustedRegion animated:YES];
编辑:startZoom 是一个常量,我已经记录了它以确保它在设置区域之前就在那里
我试过用
if (self.isMovingToParentViewController )
为了让它在第一次调用 View 时运行,但它仍然显示相同的结果。
它应该是这样的。
但这就是我得到的。
有人知道这是为什么吗?谢谢
回答:我使用 tkanzakic answer 来确保我的一些代码只被使用过一次。另外,未设置区域的原因是它不喜欢这行代码。
MKCoordinateRegion adjustedRegion = [MapView regionThatFits:viewRegion];
最佳答案
这里的问题在于调用 -[MKMapView regionThatFits:]
。
当您为 map View 设置区域时, View 通常需要稍微调整您的区域以使其正确适合其边界。例如,您指定的区域的纵横比通常与实际 View 的纵横比不匹配。
如果您真的需要在设置之前知道调整后的区域,您可以使用-[MKMapView regionThatFits:]
。过早这样做的问题(例如,在 viewDidLoad
中)是 map View 根据它自己在屏幕上的大小计算“适合的区域”。在自动布局的情况下,在实际布局发生之前,该大小可能不正确或没有意义。因此,当调用 viewDidLoad 时, map View 可能还不知道其正确的实际大小。
从您的代码来看,您似乎并没有长时间保留 adjustedRegion,只是将其直接传递回 map View 。所以你可以忽略它而只做这个:
[mapView setRegion:viewRegion animated:NO];
然后 map View 将根据需要调整该区域。稍后如果您需要知道调整后的区域是什么,您可以稍后向 map View 询问(在 viewDidAppear: 或布局发生后的其他时间)。
希望对您有所帮助。
关于iphone - MKMap 无法在 ViewDidLoad/ViewWillAppear 中设置区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14561129/
我环顾四周,但在这个主题上几乎找不到。 我正在尝试在我正在创建的应用程序中实现“查找您的汽车”功能。 我有一个 map View ,用户可以使用它来存储他们汽车的位置。然后他们可以单击“查找汽车”以在
我有一个 TabBar 应用程序。第一个 View 是一个加载屏幕,它调用我所有的网络服务和数据库功能。然后它将 MKmap 推送到我的第一个选项卡。 我遇到的问题是我的 map 默认显示为没有值,即
我一直在关注这个tutorial显示自定义注释标注气泡。如果您只有一个带有自定义注释 View 的注释,它会完美地工作。 但是,我的 map 上需要有更多内容,而且我在从自定义注释 View 切换到另
首先,我的代码运行良好。 我已经很好地设置和 mapView.register 我的注释标记和集群。 当我在集群 View 中按预期缩小注释融合时, 当我放大时,同样的好结果,除了在某个点。当太多注释
你好 friend ,在我的应用程序中,我在 map View 上显示多个引脚。我有两个可变数组,第一个用于纬度,第二个用于经度,每个数组有 10 个值,正如我在方法中显示的以下代码: - (void
我正在寻找将 MKMap 与 Cosos2D 相结合的最佳解决方案。 我希望实现的结果是创建一个游戏,玩家可以在 MKMap 上的街道上(从上面看)奔跑。玩家应该只能在街道上奔跑,所以如果玩家试图跑出
在我的 iPhone 应用程序中,我必须在 map View 中显示附近的餐厅,目前我在 WebView 中使用 Google map url。 但是我如何使用本地 MKMap View 显示当前位置
我在设置 MKMapView 时遇到了一些问题。我真的只是希望完整的 map 适合里面指定的 MkMapView-Region Storyboard。但似乎无法缩放 map ,导致整个世界都可见。它看
我可以在我的 iphone 应用程序项目中显示 map 和放置我想要的位置的图钉,但我希望在 View 加载时显示标题和副标题。这是我正在使用的代码。我以为投入 [mapView selectAnno
注释在 map 上移动,并尝试缩放或滚动 map ,注释会从其开始动画的位置跳转到原始位置。 添加到 mkmapview 后,我正在向注释层添加动画。 提前致谢。这是我关于堆栈溢出的第一个问题。 最佳
运行此日志时: -(void) locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLo
我正在使用 MKMapView 在 iPhone 上显示 map 。 map 可以旋转,以便使用磁航向信息相对于 iPhone 方向进行定向。 我喜欢展示指南针,但每次 map 指向北方时它都会消失!
我正在尝试为 MKmap 设置坐标和区域。如果我将它放在 viewDidAppear 中,我编写的代码可以工作,但是我不希望它出现在这种方法中,因为我不希望每次出现 View 时都设置它。 这是我试图
在我的应用程序中,我使用 MKMapView 在 map View 中显示了一些地方。它显示 map 很好。但是从昨天开始它只显示网格而不显示 map ,当我添加委托(delegate)方法时它有时会
问题: 我希望禁止触摸用户位置以阻止“我的位置”注释 我一直在寻找解决方案一段时间,经过广泛的在线研究后,我什至还没有找到这个问题。 我创建了一个用 Swift 编写的移动应用程序,其中有关于 MKM
我正在创建一个带有 MKMapView 的界面。但是,我一直收到这些错误消息,我想我已经正确链接了框架。在类 ContactViewController 头文件的开头,我#import 。 我相信我已
我尝试在 Xamarin iOS 中的 MKMapView 上将 OSM 磁贴显示为 Apple map 上方的图层 private MKTileOverlay _tileOverlay; .....
如何获取 MKMap View 的邮政编码。 ( swift 3.0)这是我的代码,你能帮帮我吗? import UIKit import MapKit import GoogleMaps impor
我无法在 Split View基础的 Detailpane 中显示 MKMap 上的注释 我在主 Pane (左)(弹出框)中有表格,当我在主 Pane 中选择一行时,详细信息 Pane (右)应该有
我有一个 View ,其下有 MKmap 和 UIButton/UTextField。 我认为如果我可以将 UIButton/UTextField 放在 map 的“前面”就好了,这样 map 看起来
我是一名优秀的程序员,十分优秀!