Swift言語を初めて使用し、mapkitでアプリケーションをまだ実行していません。しかし、マップと地域を設定しましたが、ユーザーがピンを追加します。どこから始めればいいのかわかりませんが、現時点で(ピンについて)持っているのは自分の変数だけですが、それが正しいかどうかすらわかりません。 !私が持っているもの...
var MyPins:MKPinAnnotatoinView!
......
override func viewDidLoad() {
super.viewDidLoad()
Mapviewコード
..... .....}
ピン変数が正しい。次に、この注釈をMKMapView
に追加するだけです。
MKAnnotation
のカスタムクラスを作成して、カスタムビューをマップビューに追加することもできます。
ベータデモMapExampleiOS8 (=>これはをサポートしますSwift 2.1
以下の手順に従ってください:
1。 _MapKit.framework
_をプロジェクトに追加します。
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)
}
_
ユーザーがいつピンを追加する必要があるかについて、メソッドを呼び出す必要があります。ユーザーがマップをタップしてホールドするピンを追加する場合は、gestureRecognizerを呼び出す必要がありますが、ボタンを使用してそれを行う場合は、アクションでそれを呼び出すだけです。いずれにせよ、ピンを追加するためのドキュメントは徹底的に議論されています Here