2016-08-09 5 views
-1

Ich versuche, MKTileOverlay Unterklasse, aber habe Probleme mit der Suche nach Eigenschaft CanReplaceMap auf Objekt. Was mache ich falsch? Ich gehe zu Neu, erstelle eine neue Klasse, Subclass of MKTileOverlay und füge die Methoden hinzu, die alle Tutorials hinzufügen, aber diese einfachen Eigenschaften werden nicht gefunden! HierSchwierigkeit in Subclassing MKTileOverlay

+0

Können Sie das Code-Snippet posten, wie Sie das MKTileOverlay erstellen und wie Sie auf die canReplaceMap-Eigenschaft zugreifen? – ldindu

Antwort

1

ist die benutzerdefinierte Klasse Erweiterung für MKTileOverlay, die ich habe die Karte in MapKit Overlay wurde unter Verwendung von:

class CustomTileOverlay : MKTileOverlay 
{ 
    var mapLocation: MKMapPoint 
    var mapSize: MKMapSize 

    init(urlTemplate: String, location: MKMapPoint, size: MKMapSize) 
    { 
     mapLocation = location 
     mapSize = size 

     super.init(urlTemplate: urlTemplate) 
    } 

    override var boundingMapRect: MKMapRect { 
     get { 
      return MKMapRect(origin: mapLocation, size: mapSize) 
     } 
    } 
} 

Der Grund für eine Erweiterung zu tun ist in der Lage sein, die boundingMapRect einzustellen, da diese nur gelesen haben in der Basisklasse (wenn Sie also keine Anpassung vornehmen müssen, verwenden Sie keine Unterklasse von MKTileOverlay).

Hier ist das Setup für die Verwendung der benutzerdefinierten Klasse. Ich ziehe die Werte aus einem CoreData-Datensatz, den ich für das Kachelset eingerichtet habe, aber Sie können diese fest verdrahten oder von wo immer Ihre App passt. Da ich Polylinien habe, die die Kacheln überlagern, brauche ich die letzte Zeile, um sicherzustellen, dass die Kacheln unter den Linien liegen. Wenn Sie also beide nicht haben, brauchen Sie diese Linie nicht.