割と続いております。StackOverflow活動日記です。
さて、今日回答したのはこちらの質問。
私が得意とする MapKit 関連の質問です。
この分野で多いのが、
- 地図上にピンが表示されない
- ピンをタップしたときに表示されるバルーンが思い通りにならない
- ピンがドラッグできない
- 地図上に線が引けない
等の質問です。そして、そのほとんどが delegate プロパティのセット忘れや、delegate メソッドの実装漏れによるものです。
今回も「ピンは表示されるけど、ピンをタップしたときに表示されるバルーンにCallout(ボタンみたいなの)が表示されないよ」といった内容でした。
▲この右側のボタンが表示されないようです
コメント欄のやり取りを見ると、どうやら delegate プロパティにはちゃんと self
がセットされている様子です。その後、Stackoverflow のチャットルームに移動したようですが、解決には至らなかったもようです。*1
となると、次に疑うのは delegate メソッド(viewForAnnotation)の実装漏れです。質問文に載せられたソースコードをじっくり見てみると、どうやらちゃんと実装されている様子・・・いや、よく見てみると
func mapView(mapView: MKMapView!, viewForAnnotation annotation: MKAnnotation!) -> MKAnnotationView!
になっていました。このメソッドは Swift 3 で
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView?
に変わっています。そのため、このメソッドが呼ばれず、Callout の設定も実行されずにいたようです。
その旨を回答したところ、無事問題が解決されたようです👍
***
Accept + vote up により、reputation が +25 されました。
2,500 まであと少し!がんばります💪
*1:Stackoverflowにはディスカッションのためのチャットルームが用意されている。20 reputation以上のユーザなら誰でも入室することができる