在某些缩放lvl中的MKMapView中,所有 map 图块均为空白。
我尝试使用最大缩放的solution
现在,我像这样使用它:

 func mapView(mapView: MKMapView, regionDidChangeAnimated animated: Bool) {
        userSpan = mapView.region.span
        if mapView.zoomLevel() > maxZoomLvl
        {
            mapView.setCenterCoordinate(mapView.centerCoordinate, zoomLevel: maxZoomLvl, animated: true)
        }
    }

但是,当用户缩放到最大水平时,它将随动画一起缩放。但是我需要一些像 native 苹果 map 应用程序中那样的解决方案:仅阻止最大缩放,而无法进行深度缩放和缩放。
预期结果:
  • 避免在最大缩放中使用平淡的图块并缩小回弹(就像现在可以在当前解决方案中使用)
  • 如果没有图块,则 map 应停止缩放(如 native 苹果 map 应用程序),或者 map 应缩放最后可见的图块(如google maps应用程序)
  • 最佳答案

    您可以使用mapView.camera对象MKMapCamera来执行此操作。
    从文档-

    只需要找到一个好的高度值。从这个答案中,Is there way to limit MKMapView maximum zoom level?
    似乎跟随可能会帮助您-

    - (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated {
    // enforce maximum zoom level
    if (_mapView.camera.altitude < 120.00 && !_modifyingMap) {
        _modifyingMap = YES; // prevents strange infinite loop case
    
        _mapView.camera.altitude = 120.00;
    
        _modifyingMap = NO;
    }
    }
    

    关于ios - MKMapView避免出现空白图块[iOS 8+],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39241797/

    10-13 05:42