web-dev-qa-db-ja.com

Xcode 6(Swift)でピン(注釈)を追加する方法

Swift言語を初めて使用し、mapkitでアプリケーションをまだ実行していません。しかし、マップと地域を設定しましたが、ユーザーがピンを追加します。どこから始めればいいのかわかりませんが、現時点で(ピンについて)持っているのは自分の変数だけですが、それが正しいかどうかすらわかりません。 !私が持っているもの...

var MyPins:MKPinAnnotatoinView!

......

override func viewDidLoad() {
    super.viewDidLoad()

Mapviewコード

..... .....}

16
Trts

ピン変数が正しい。次に、この注釈をMKMapViewに追加するだけです。

MKAnnotationのカスタムクラスを作成して、カスタムビューをマップビューに追加することもできます。

ベータデモMapExampleiOS8=>これはをサポートしますSwift 2.1

以下の手順に従ってください:

1。 _MapKit.framework_をプロジェクトに追加します。

enter image description here

2。マップビューコントロールのStoryboard変数IBOutletを作成するか、View Controllerで作成します。この変数のデリゲートを設定して、デリゲートメソッドをオーバーライドします:

委任署名を追加して、コントローラーインターフェイスを表示します。

_class ViewController: UIViewController, MKMapViewDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()

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

3。デリゲートメソッドをオーバーライドします:

ここでは、mapView(_:viewForAnnotation:)メソッドをオーバーライドして、地図上に注釈ピンを表示する必要があります。

_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。 MKPointAnnotationをマップビューに追加します。

マップビューの場所にピンを追加できます。簡単にするために、viewDidLoad()メソッドにコードを追加します。

_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

ユーザーがいつピンを追加する必要があるかについて、メソッドを呼び出す必要があります。ユーザーがマップをタップしてホールドするピンを追加する場合は、gestureRecognizerを呼び出す必要がありますが、ボタンを使用してそれを行う場合は、アクションでそれを呼び出すだけです。いずれにせよ、ピンを追加するためのドキュメントは徹底的に議論されています Here

0
Nicholas