【问题标题】:Delay loading UIView until mapkit loads延迟加载 UIView 直到 mapkit 加载
【发布时间】:2012-11-07 20:16:13
【问题描述】:

我对 iOS 中的 MapKit 有疑问。我有 3 个屏幕。第一个屏幕(主视图),第二个屏幕(详细视图)和第三个屏幕(扩展第二个屏幕)。所以我单击主视图并转到详细视图。在详细视图中,我有一个地图套件。因此,当我第一次从 1->2 移动时,它运行得很快并且无法加载 mapkit。我得到了位置,但在世界地图视图中。但是我回到第一个屏幕并返回到第二个屏幕,然后它以放大模式显示我所在位置周围的区域,并带有一个蓝点。所以我的问题是,是否有一个函数可以设置放大然后加载我的 UIview。基本上,停止直到地图对用户位置进行三角测量,然后在完成后显示放大模式和视图的其余部分。?如果需要更多信息,请告诉我...谢谢

【问题讨论】:

  • 你是在加载时设置地图的 visibleRegion/visibleMapRect 吗?
  • @tc。是的,我在 viewWillAppear 中设置了这条线。 [self.mapView setRegion:viewRegion Animation:YES];这是你要求的吗?
  • viewRegion 设置为什么?
  • @tc #define METERS_PER_MILE 1609.344 MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(zoomLocation, 0.5 *METERS_PER_MILE, 0.5*METERS_PER_MILE);。另外,我可以获得一个缩放图标(+,-)来放大或缩小地图套件。如果是,如何?
  • 用代码更新你的问题会更有帮助——我不知道“zoomLocation”的设置是什么。但是,您似乎试图在视图加载时放大用户的“当前位置”,直到几秒钟后才可用;考虑设置MKMapView.userTrackingMode 或实现-mapView:didUpdateUserLocation: 委托方法。

标签: objective-c ios location mapkit coordinates


【解决方案1】:

如果您找到了这样做的方法,您可能仍然不应该这样做。获取用户的位置可能需要相当长的时间,并且您不希望您的应用在此之前被卡住。您最多可以做的是加载地图视图并开始进行三角测量,但用另一个显示进度指示器的视图覆盖它>设置委托以在找到位置时获得回调,如果它对您的目的足够准确,请隐藏顶视图并显示隐藏在下方的地图。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-20
    • 2011-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多