質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
iOS 9

iOS 9は、アップル社のモバイルOSであるiOSシリーズのバージョン。特徴として検索機能の強化、Siriの機能改良、iPad向けマルチタスクなどがあります。マルチウィンドウ機能をサポートし、iPad向けマルチタスクもサポートされています。

Xcode 7

Xcode 7は、ソフトウェア開発のためのアップルの統合開発環境であるXcodeのバージョン。UIを作成するために用いるグラフィカルツールです。iOS9/OS X El Capitan/watchOS2に対応。Swift 2コンパイラーが搭載されています。

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

Q&A

解決済

1回答

5152閲覧

Swift:Mapのピンの吹き出しに画像を入れたい

ra-men

総合スコア98

iOS 9

iOS 9は、アップル社のモバイルOSであるiOSシリーズのバージョン。特徴として検索機能の強化、Siriの機能改良、iPad向けマルチタスクなどがあります。マルチウィンドウ機能をサポートし、iPad向けマルチタスクもサポートされています。

Xcode 7

Xcode 7は、ソフトウェア開発のためのアップルの統合開発環境であるXcodeのバージョン。UIを作成するために用いるグラフィカルツールです。iOS9/OS X El Capitan/watchOS2に対応。Swift 2コンパイラーが搭載されています。

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

0グッド

0クリップ

投稿2016/03/25 16:47

このサイトを見てピンの実装までできましたが、吹き出しに画像を入れる方法がわかりません。
http://blog.koogawa.com/entry/2015/11/01/115728
タイトルとサブサイトルは入れられました。
ここに何を加えれば画像を挿入できるのでしょうか?教えて下さい。お願いします

func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? { if annotation is MKUserLocation { return nil } let reuseId = "pin" var pinView = mapView.dequeueReusableAnnotationViewWithIdentifier(reuseId) as? MKPinAnnotationView if pinView == nil { pinView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseId) pinView?.animatesDrop = true } else { pinView?.annotation = annotation } return pinView }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

間違えている箇所があるかもしれませんが、画像が表示できるところまでは出来ましたのでとりあえずコードを載せておきます。

吹き出しに画像を入れる方法がわかりません。

この場合はiOS9で追加されたプロパティのdetailCalloutAccessoryViewがいろいろカスタムできて便利そうです。
iOS 9で強化されたMapKit

それ以前ではrightCalloutAccessoryViewまたはleftCalloutAccessoryViewプロパティに同じ様に画像を設定できるのですが、吹き出し(callout)のサイズを任意に変更できない為小さい画像にしないと画像が切れてしまいます。
※CustomしたAnnotationのライブラリ等使うとできると思うのですが、それ以外の方法が分かりませんでした、できるようでしたらどなたか教えてくださいm(_ _)m

swift

1func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? { 2 if annotation is MKUserLocation { 3 return nil 4 } 5 6 let reuseId = "pin" 7 var pinView = mapView.dequeueReusableAnnotationViewWithIdentifier(reuseId) as? MKPinAnnotationView 8 if pinView == nil { 9 pinView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseId) 10 pinView?.animatesDrop = true 11 12 // 以下を追加 ↓ 13 let rightImageView = UIImageView(image: UIImage(named: "apple.jpeg")) 14 rightImageView.frame = CGRectMake(0, 0, 30, 30) 15 rightImageView.contentMode = .ScaleAspectFit 16 17 if #available(iOS 9.0, *) { 18 pinView?.detailCalloutAccessoryView = rightImageView 19 } else { 20 pinView?.rightCalloutAccessoryView = rightImageView 21 } 22 // ここまで ↑ 23 } 24 else { 25 pinView?.annotation = annotation 26 } 27 28 return pinView 29}

iOS09以前rightCalloutAccessoryViewを使用

image1

iOS9 detailCalloutAccessoryViewを使用

image2

投稿2016/03/26 03:13

編集2016/03/26 11:00
_Kentarou

総合スコア8490

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ra-men

2016/03/26 07:21

ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問