iPhone開発のネタ帳: コールアウト代用部品を作る
Map Kit を使うと、地図上に吹き出しのようなものを表示できる。この吹き出しのようなものをコールアウト Callout と呼ぶらしい。
このコールアウトは MKMapView でしか使用できないと思うが、地図アプリ以外でも使えたら便利だ。
しかし今はMKMapViewでしか使用できないコントロールとなっている。

ということで、自作アプリではsonsongithub の PopupView を使ってみたのだが、使っているうちに、コールアウトのようにUITableViewCellAccessoryDetailDisclosureButton (青丸に白で>と書かれているボタン)を表示したりしたくなってきた。
PopupView を改造することを考えたが、実際やってみると簡単にはできなそう。
しかしよく考えると自分のアプリは今のところiPad専用なので、UIPopoverController を使う手もありそう。
UIPopoverController はUIViewをPopover内に何でも表示することができるので、この中にUITableViewを表示すれば、UITableViewCellAccessoryDetailDisclosureButton を表示することができそう。

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

関連記事
-
-
LSSupportsOpeningDocumentsInPlace
拙作英単語学習アプリ EverLearn で LSSupportsOpeningDocuments
-
-
Mac Fan 2020年 6月号
長女のiPhone 6 の画面がバキバキに割れているので、iPhone SE を購入した。
-
-
[iPhone開発本] iPad電子書籍アプリ開発ガイドブック
2010年8月23日発売らしい。3570円と高いけれども、内容は濃そうだ。 目次はImpress D
-
-
APNs のサーバー側をサポートしてくれる Urban Airship (APNs対応その2)
Apple Push Notification Service (APNs) はAppleのAPN
-
-
heroku Cedar-10からCedar-14に引越し
2015/11/04 に Cedar-10 stack が終了となる連絡が heroku からきたの
-
-
[iPhone5] 使用開始5日目の感想
au iPhone5を発売日翌日(9/22)に購入してから5日経ったので感想を書いてみる。 し
-
-
Corona SDK 調査6日目
なかなか Corona SDK自体の調査まで進めないCorona SDK調査6日目。 平日はさすがに
-
-
[iOS9] AVSpeechSynthesizer の再生スピードがおかしい
iPhone 6 Plus を iOS9 にアップデートして自作アプリをXcode7 から転送したと
-
-
WWDC 2011 に行ってきた
WWDC 2011に行ってきたときのメモなど。公開が遅れているうちにWWDC 2012のチケット
-
-
[iOS10] NSPhotoLibraryUsageDescription
iOS10 になってから App Store にアプリのSubmitを行ったところ、アプリのアップロ