ソースコード付きで中々思い通りに行かない地図上のタップイベントについて解決策を 解説します。 MapKitのMKMapView上で地図操作を邪魔せずにタッチイベントを取得するのは、 想像するよりもやっかいです。 通常ですと、タップの検知はtouchesBegan()等で行いますが、 MKMapViewでは既にタップのイベントが沢山用意されていますので、 単純にオーバーライド等で書き換えたとしても、マップの移動や拡大縮小など 本来MKMapViewが持っているタッチ操作を邪魔してしまいます。 また、Viewを別に用意してタップをそこで拾ったりを考えますが、 タップを拾った時点でイベントの通知がストップしてしまいますので、 中々上手く調整する事が出来ません。 そこで、UIViewのhittestを使用します。 今回の解説では、地図の操作を邪魔せずにタッチのイベントを取得し、 指定のメソッドを座
![【Objective-C】MKMapView上でのタップイベントの取得方法](https://cdn-ak-scissors.b.st-hatena.com/image/square/9ae5f4f727084ab73e4967297ed05094ec1fb019/height=288;version=1;width=512/https%3A%2F%2Fblogger.googleusercontent.com%2Fimg%2Fb%2FR29vZ2xl%2FAVvXsEjrXfzHzyrXeyNBsax3jLrGA1z_1sgSj4NS9wQxgTC8Jqvv00zqW5HdfkNN1RB7169Orw2fyHwrVyp1oyAJFs5GSLYoQ3Hl-Bcgaogt8XsyjqT-zz40bL3Ev9BVIt-2sCktPgEPkl5zWg%2Fw1200-h630-p-k-no-nu%2FN112_sumahodeyorokobu.jpg)