🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

696閲覧

MKMapViewでレーダーを実現したい

onn

総合スコア5

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

1グッド

0クリップ

投稿2019/09/23 06:50

MKMapViewを使用してドラゴンボールレーダーのようなマップ画面のアプリを作成しようと考えています。

ドラゴンボールレーダーのように背景をメッシュのようにして、ピンなどは残すようにしたいのですが、設定方法、実現方法に悩んでいます。

現在はMKMapViewを使用していますが、どのような実装を行うのが良いでしょうか・・・

reud👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

mapviewの上に細い線のUIImageViewを複数個配置すればいいのではないでしょうか?

codeから実現すれば、割と簡単にできると思います。

Swift

1// 適宜、viewDidLoadなどで、makeBars(space: CGFloat(20))などで呼び出す想定 2 3 func makeBars(space: CGFloat) { 4 // let space = CGFloat(40) // 引数を取らないなら、この行の記載を(各線の幅設定、適宜変更を) 5 let horizontalN = self.view.bounds.width / space 6 let verticalN = self.view.bounds.height / space 7 for n in 0 ... Int(horizontalN) { 8 let verticalLine = UIImageView(image: UIImage(named: "verticalLine.png")) 9 verticalLine.frame = CGRect(x: 0, y: 0, width:2, height: self.view.bounds.height) 10 verticalLine.tag = n * 10 + 1 // あとで取得できるようにtag設定 11 self.view.addSubview(verticalLine) 12 self.view.bringSubviewToFront(verticalLine) 13 } 14 for n in 0 ... Int(verticalN) { 15 let horizontalLine = UIImageView(image: UIImage(named: "horizontalLine.png")) 16 horizontalLine.frame = CGRect(x: 0, y: 0, width:self.view.bounds.width, height: 2) 17 horizontalLine.tag = n * 10 + 2 18 self.view.addSubview(horizontalLine) 19 self.view.bringSubviewToFront(horizontalLine) 20 } 21 }

投稿2019/09/23 23:22

編集2019/09/23 23:38
hameji

総合スコア1380

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

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

onn

2019/09/25 01:34

ありがとうございます!
onn

2019/09/25 01:42

レーダーのようにするために、細い線を配置するときに、map上のピンのみを残して背景部分を消したいと考えているのですがどのように実装すればいいでしょうか?
hameji

2019/09/25 04:45 編集

https://www.raywenderlich.com/425-mapkit-tutorial-overlay-views のAll About Overlay Viewsを参考に作ればできると思います。 英語ですが、頑張って読んでみてくださいね。 そのページにも書いてありますが、 もっとも簡単な方法はUIViewを上に載せることでも実現できそうですが、 (画面奥) MapView -> UIView -> 格子 -> Pin (画面手前) マップの移動や縮尺が効かなくなる恐れがあるので、 overlay viewを用いるのがいいと思います。
onn

2019/09/25 07:07

ありがとうございます、早速試してみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問