新アプリ「何処リマインダ」の諸々(3) ー MapView ー 現在地Mark印のカスタマ(2)
現在地処理のマーク印のカスタマのお話です。
一応、フツーにカスタマ無しで、起動時に見えるマーク印は、
でしょう。
でした。
MapViewのdelegateで受けれる「アノテーションビューを返すメソッド」があります。
1 2 | //MARK: ⚡+++ MKMapViewDelegate アノテーションビューを返すメソッド func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? |
この「アノテーションビューを返すメソッド」には、
今のところ、「何処リマインダ」では、
・現在地マーク印の編集
・「吹き出し」の編集
をカスタマしています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | //MARK: ⚡+++ MKMapViewDelegate アノテーションビューを返すメソッド func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? { print("== MKMapViewDelegate - viewFor annotation") // MARK: === アノテーションビューを生成する。 let anoPinView = MKPinAnnotationView() // MARK: === アノテーションビューに座標、タイトル、サブタイトルを設定する。 anoPinView.annotation = annotation // MARK: === 現在地のアノテーションビューを設定する。 if annotation === mapView.userLocation { // 現在地を示すアノテーションの場合はデフォルトのまま let identifier = "annotation" if let annotationView = mapView.dequeueReusableAnnotationView(withIdentifier: "annotation") { // 再利用できる場合はそのまま返す return annotationView } else { // 再利用できるアノテーションが無い場合(初回など)は生成する let annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: identifier) annotationView.image = UIImage(named: "curpos2") //⭐のマーク印 return annotationView } } // MARK: === 「吹き出し」の編集 == カスタムAnnotationの表示 else if let customAnno = annotation as? CustomMKPointAnnotation { // ・・・ CustomMKPointAnnotation は、プチカスタマ用のMKAnnotationです。 } else{ anoPinView.pinTintColor = UIColor.purple } //吹き出しの表示をONにする。 anoPinView.canShowCallout = true return anoPinView } |
と、まぁいうことで、現在地点処理は、一旦で区切りができました。
ではでは。