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)
よくわかるAuto Layout iOSレスポンシブデザインをマスター

page_footer_300rect




page_footer_300rect




-iOS
-

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

[Swift]忘れられがちなSFSafariViewControllerについて

1 はじめに1.1 前提条件2 SFSafariViewControllerとは2.1 SFSafariViewControllerの特徴2.2 iOS11からのCookie同期について3 SFSaf ...

swift

Swift3でSCLAlertViewを使ってみた

1 はじめに2 準備3 実装 はじめに 今回はSwiftでフラットなデザインの アニメーション付きアラートビューが扱える SCLAlertViewを試してみたいと思います。 準備 おなじみCocoaP ...

swift

iOSで画像の任意の場所をぼかし処理する方法

1 はじめに1.1 前提条件2 準備3 実装3.1 ぼかし処理のイメージ画像3.2 サンプルコード4 さいごに はじめに iOSで写真の任意の場所にぼかし処理をしたいケースがありましたので、 iOSで ...

swift

[Swift3] Segmentを使った画面切り替え (Extra View)

1 はじめに1.1 前提条件2 Segmentの用意3 表示したいViewを用意4 Extra Viewsに追加5 Segmentでの切り替え5.1 デフォルトで表示されるViewを設定5.2 Seg ...

[Swift4]StringのSwft4変更点と文字列操作

1 はじめに2 Swift4でのString変更点2.1 コレクション化2.2 文字列長の取得2.3 文字列を複数行で定義3 文字列操作3.1 英大文字、小文字変換3.2 ひらがな、カタカナ変換3.3 ...

フォロー

follow us in feedly

page_side_300rect

2019年1月
« 12月 2月 »
 12345
6789101112
13141516171819
20212223242526
2728293031 

アプリ情報

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