iPhone開発のネタ帳: コールアウト代用部品を作る

公開日: : iPad, iPhone ,

IMG_0619.PNG

Map Kit を使うと、地図上に吹き出しのようなものを表示できる。この吹き出しのようなものをコールアウト Callout と呼ぶらしい。
このコールアウトは MKMapView でしか使用できないと思うが、地図アプリ以外でも使えたら便利だ。
しかし今はMKMapViewでしか使用できないコントロールとなっている。
IMG_0278.PNG
ということで、自作アプリではsonsongithub の PopupView を使ってみたのだが、使っているうちに、コールアウトのようにUITableViewCellAccessoryDetailDisclosureButton (青丸に白で>と書かれているボタン)を表示したりしたくなってきた。
PopupView を改造することを考えたが、実際やってみると簡単にはできなそう。
しかしよく考えると自分のアプリは今のところiPad専用なので、UIPopoverController を使う手もありそう。
UIPopoverController はUIViewをPopover内に何でも表示することができるので、この中にUITableViewを表示すれば、UITableViewCellAccessoryDetailDisclosureButton を表示することができそう。
callout.png
ということで、作ってみたら見た目は違うけれども一応使えるものができた。

… と思ったのだが、実際に使ってみるとUIPopoverControllerはコールアウトとはかなり挙動が異なる。ある程度 passthroughtViews とかで挙動を変えられるが、それでもちょっと使いづらいのでコールアウトの代わりに使うのは見送りとした。
もう一度 PopupView の改造にトライしようと新規にダウンロードしたところ、UIView が組み込めるように更新されていて驚いた。1日前に更新されたようだった。
このため、UIView を自分で作ることでコールアウトに近いものを作ることができた。
ただ、コールアウト中の UITableViewCellAccessoryDetailDisclosureButton (青丸に白で>と書かれているボタン) は単なるUIView派生クラスを組み込んでしかもそのボタンを押したときに特別な処理を呼ぶことはできなかったので、少しだけSNPopupView本体に手を入れさせてもらった。

手を入れないで対応できる方法が思いつけば良かったけれども。
callout03.png

関連記事

Everioで撮影した動画を共有する

毎年クリスマス近くになると、娘たちのバレエミニ発表会があるので、動画を撮って参加者に共有している。と

記事を読む

Anker の高耐久ライトニングケーブルを買ってみた

立て続けに2本ライトニングケーブルが壊れたので、ふんぱつして高級ケーブルを買ってみた。 たしかに

記事を読む

[iOS] INNER JOIN に失敗する

非常に面妖な状況でにわかには信じがたいのだが、iPhone 6 Plus だと問題なく動作する

記事を読む

no image

Invalid Signature で App Store に Submit できず

無料版と有料版を同じソースからビルドできるようにしようと思いいろいろ試行錯誤を続けている。 ついにビ

記事を読む

no image

[iPhone SDK] iOS 4で導入された Blocks とは

Game Center を試していると、たくさんの^ (Caret というらしい。自分はハットと覚え

記事を読む

no image

Corona SDK を試してみた

どうやら結構いまさらなようだが、Corona SDK を試してみた。 Corona SDK は同じソ

記事を読む

no image

[iPhone SDK] アクションメソッドの種類

UIKitのコントローラは、3種類のメソッドで呼び出すことができる。 いつもこれを忘れてしまうので、

記事を読む

no image

[iOS SDK] iOS5 の Twitter 機能を利用してみる

iOS5でシンプルツイッター機能をあなたのアプリにも。 | mipoiApp-iPhoneアプリ

記事を読む

no image

最近読んだ本: iOS デバッグ&最適化技法 2011/06/26

発売されたことは知っていたが、とりあえず必要としてなかったのでずっと買わずにいた、iOSデバッグ&最

記事を読む

no image

iPhone Developer Program Activation できず

昨日の朝iPhone Developer Program に加入したはずなのだが、夜になってもまだA

記事を読む

Message

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

iPhone XR予約開始

10/19(金)はiPhone XRの予約開始日だった。おそらく大量に

[iOS開発本] よくわかる Auto Layout

あまりにも Auto Layout がわかりにくいので、業を煮やして開

LogLocations 1.3.4 リリース

久しぶりに、LogLocations をアップデートしました。今までピ

Apple Special Event September 2018

今年も新型iPhoneを発表するアップルのスペシャルイベントが2018

Mint60のFirmwareをOSX用に書き換えてみる

Mint60のFirmwareを書き換えてみる前回、自作キーボードキッ

→もっと見る

PAGE TOP ↑