webentwicklung-frage-antwort-db.com.de

Wie füge ich Pins (Anmerkungen) mit Xcode 6 (Swift) hinzu?

Ich bin neu in der Swift-Sprache und habe noch keine Anwendung mit Mapkit erstellt. Aber ich habe die Karte und die Regionen festgelegt, aber ich bin nicht mehr daran interessiert, wie man Pins hinzufügen darf. Lassen Sie mich klarstellen, ich habe keine Ahnung, wo ich anfangen soll. Alles, was ich im Moment (für die Pins) habe, ist meine Variable, aber ich bin mir nicht mal sicher, ob das stimmt. Jede Hilfe wäre sehr dankbar !! Was ich habe ...

var MyPins: MKPinAnnotatoinView!

......

override func viewDidLoad() {
    super.viewDidLoad()

Mapview-Code

..........}

16
Trts

Ihre Pin-Variable ist korrekt. Jetzt müssen Sie diese Anmerkung nur noch zu MKMapView hinzufügen. 

Sie können auch eine benutzerdefinierte Klasse für MKAnnotation erstellen, um der Kartenansicht benutzerdefinierte Annotationen hinzuzufügen.

Eine Beta-Demo für MapExampleiOS8 => die Swift 2.1 unterstützt

Führen Sie die folgenden Schritte aus:

1. Fügen Sie MapKit.framework zum Projekt hinzu.

enter image description here

2. Erstellen Sie die Storyboard-Variable IBOutlet des Kartenansicht-Steuerelements oder erstellen Sie sie im Ansichts-Controller. Legen Sie Delegate für diese Variable fest, um ihre Delegatmethoden zu überschreiben:

Fügen Sie die Delegierungssignatur zur Ansicht der Controller-Schnittstelle hinzu:

class ViewController: UIViewController, MKMapViewDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()

        // Set map view delegate with controller
        self.mapView.delegate = self
    }
}

3. Überschreiben Sie seine Delegatmethoden:

Hier müssen wir die mapView(_:viewForAnnotation:)-Methode überschreiben, um Anmerkungs-Pins auf der Karte anzuzeigen.

func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? {
    if (annotation is MKUserLocation) {
        return nil
    }

    if (annotation.isKind(of: CustomAnnotation.self)) {
        let customAnnotation = annotation as? CustomAnnotation
        mapView.translatesAutoresizingMaskIntoConstraints = false
        var annotationView = mapView.dequeueReusableAnnotationView(withIdentifier: "CustomAnnotation") as MKAnnotationView!

        if (annotationView == nil) {
            annotationView = customAnnotation?.annotationView()
        } else {
            annotationView?.annotation = annotation;
        }

        self.addBounceAnimationToView(annotationView)
        return annotationView
    } else {
        return nil
    }
}

4. Fügen Sie MKPointAnnotation zur Kartenansicht hinzu.

In der Kartenansicht können Sie dem Standort eine Pin hinzufügen. Zur Vereinfachung fügen Sie der viewDidLoad()-Methode Code hinzu.

override func viewDidLoad() {
    super.viewDidLoad()

    // Set map view delegate with controller
    self.mapView.delegate = self

    let newYorkLocation = CLLocationCoordinate2DMake(40.730872, -74.003066)
    // Drop a pin
    let dropPin = MKPointAnnotation()
    dropPin.coordinate = newYorkLocation
    dropPin.title = "New York City"
    mapView.addAnnotation(dropPin)
}
38
Kampai

Sie müssen eine Methode aufrufen, wann und wo der Benutzer die PIN hinzufügen muss. Wenn Sie einen Pin hinzufügen möchten, an dem der Benutzer auf der Karte tippt und hält, müssen Sie einen GestureRecognizer aufrufen. Wenn Sie dies jedoch über eine Schaltfläche tun möchten, rufen Sie das natürlich in einer Aktion auf. In jedem Fall wird die Dokumentation zum Hinzufügen von Pins ausführlich besprochen Hier

0
Nicholas