iOS

[Swift]クラスタされているPINを取得する

投稿日:2019年1月15日 更新日:

はじめに

こんにちはsuzukiです。 今回は以前に紹介したクラスタ機能とテーブルビューを利用して、クラスタリングされたPINから、どのようなPINが含まれているかをリスト表示をしていこうと思います。 前回の記事はこちらを参照ください。

前回からの修正箇所

前回の記事からコードを少し変更しております。

  • enumでカテゴリの定義を追加
  • CustomPinAnnotationにカテゴリの追加
  • pin2にカテゴリの追記とpin4の作成
  • MapViewDelegateの記述場所の変更
上記を追加した状態でのコードをこちらに記述します。

クラスタリングされたPINの内容を取得する

クラスタリングされているPINか判別

今回はPINの内容を取得するため、PINがタップされた時に呼ばれるデリゲートを使用します。 mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) 上記が呼ばれた時にクラスタリングされているPINか通常のPINか判別します。 クラスタリングされているPINの場合、MKClusterAnnotationにダウンキャストが行えます。

クラスタリングされているPINを取得する

クラスタリングされているPINはMKClusterAnnotationの memberAnnotations から取得できます。 memberAnnotationsの型は [MKAnnotation] です。カスタマイズされたクラスの情報を取得したい場合はダウンキャストかmapで変換しましょう。

こちらでクラスタリングされているPINの情報が取得できました。

TableViewとの連携

TableViewをストーリーボードで作成

ストーリーボードでTableViewを実装します。

    TableViewの配置
  • デリゲートとデータソースの関連付け
  • tableViewとしてIBOutlet接続
    Cellの配置
  • Cellという名前でIdentifierを設定

PIN情報の受け取り

PIN情報を受け取るためCustomPinAnnotationの配列を宣言します。

selectedPinList が記述できたら、実際にPIN情報を渡してみましょう。 クラスタリングされているPINを取得するで作成したguard文の後ろに selectedPinList = pinList を追加します。

TableView用のコード

こちらは特に難しいことはないかと思うので今回実装した内容を簡単に記述いたします。

最終コード

さいごに

最後までありがとうございます。テーブルビューの表示非表示を切り替えたり、普通のピンをタップしたときの処理を追加したり等アプリとしてリリースする迄には実装したい内容はたくさんありますが、今回の記事はここまでとさせていただきます。また機会があれば内容を充実させて行きます。

おすすめ書籍

詳解 Swift 第4版
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

blog-page_footer_336




blog-page_footer_336




-iOS
-

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

[Swift5.5]actorで非同期のデータ競合を回避しよう!

1 はじめに2 actor2.1 actorを使用する際の注意3 さいごに4 おすすめ書籍 はじめに Swift5.5にて非同期に関する追加が行われ、async/awaitについては以前の記事で紹介し ...

swift

UnboxとWrapでデータを永続化する

1 はじめに1.1 ライブラリの紹介1.2 前提条件2 事前準備3 実装3.1 データの準備3.2 設定データをテキストファイルに出力する3.3 設定データの読み込み4 さいごに はじめに 設定ファイ ...

iOS14のWidget機能を使ってみた。

1 はじめに2 Xcode 12 betaの入れ方3 WidgetExtensionの追加方法4 デフォルトのコード説明5 Configurationについて6 プロバイダー6.1 snapshot6 ...

【Swift】iOS13.1、Xcode11でSceneDelegate周りを触ってみた。

1 はじめに2 SceneDelegateについて3 SceneDelegateの呼ばれる順番3.1 アプリ起動時3.2 アプリバックグラウンド3.3 アプリフォアグラウンド3.4 アプリフォアグラウ ...

【Swift】iOS14 で変わるプライバシー主にIDFA周り

1 はじめに2 iOS14のプライバシーについて2.1 IDFAについて2.2 iOS14でどのような動きになるか2.3 今後の対策として3 その他のプライバシーについて4 さいごに5 おすすめ書籍 ...

フォロー

blog-page_side_responsive

2019年1月
 12345
6789101112
13141516171819
20212223242526
2728293031  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。