2016-08-31 13 views
7

W MKMapView w niektórych powiększeniach lvl wszystkie kafelki mapy są puste. Próbuję solution z maksymalnym powiększeniem. Na razie używam go tak:MKMapView unikaj pustych kafelków [iOS 8+]

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

Ale kiedy użytkownik zoom max lvl to widok z animacją. Ale potrzebuję jakiegoś rozwiązania, jak w natywnej aplikacji do map jabłek: po prostu zablokuj maksymalny zoom bez możliwości powiększania głębokości i bez powiększenia. Oczekiwany wynik:

  1. Unikaj mdłe kafelki w max zoom i widok bounce (jak to działa teraz z obecnym roztwór)
  2. Mapa powinna powstrzymać powiększanie jeśli nie ma płytki (jak natywnym jabłkiem mapy aplikacji) OR mapa powinna skala ostatnich widocznych płytek (takie jak Google maps aplikacji)
+0

co jest problemem stoją tu, jak rozumiem, że jesteś widząc puste płytki podczas próby powiększenia, także ja zobacz, że chcesz zablokować maksymalny poziom powiększenia. Czy mógłbyś rozwinąć więcej? –

+0

@SantoshGurram spójrz w "Oczekiwany wynik" – UnRewa

+0

Czy możesz podać zrzut ekranu z pustymi płytkami? – kamwysoc

Odpowiedz

0

można to zrobić przy użyciu mapView.camera który to obiekt MKMapCamera.

Z Dokumenty -

var wysokość: CLLocationDistance

Wysokość nad ziemią, mierzoną w metrach.

Wystarczy znaleźć odpowiednią wartość wysokości. Od tej odpowiedzi, Is there way to limit MKMapView maximum zoom level?

Wydaje się następujący może pomóc wam-

- (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; 
} 
} 
+0

Po zwolnieniu palca zoom odskocz do tyłu ... Myślę, że nie powinienem używać funkcji regionDidChangeAnimated, ponieważ spowoduje ona powiększenie dowolnego rozwiązania – UnRewa