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本体に手を入れさせてもらった。
手を入れないで対応できる方法が思いつけば良かったけれども。
関連記事
-
-
いまさらながらXcode4導入 2011/06/29
Twitterを見ているといろいろ大変そうだったので敬遠していたXcode4だが、デバッグに便利そう
-
-
自作iPhoneアプリ いろいろレビュー依頼
アプリ制作日誌 #app_24: iPhoneアプリのレビューを、寄稿・依頼できるサイトまとめ。 と
-
-
Invalid EvernoteSession で落ちる問題に遭遇
EverLearn アプリのバージョンアップ版を作成したのでテストをしていたところ、iOS5 で起動
-
-
[iOS 開発本] iOSフラットデザインの作法
iOS7で採用されたフラットデザインに関して、個人的には Windows 8のMetroのイ
-
-
iPad 第7世代がほしい
自分は iPad mini 4 を使っているが、これだと画面が小さくて、リフロー版でないK
-
-
SANWA SUPPLY MR-IPADST1 iPadスタンド
以前から欲しかったのと手頃な値段だったのでAmazonで注文してみた。 人気があるのか、1-3週間待
-
-
[WatchKit] Apple WatchアプリをRejectされた話
Apple Watch はいつの間にか電池がかなり減っていることが多く、いつどのように減っているか知
-
-
新アプリ「おんぷ先生」をリリースしました
iPhoneアプリ「おんぷちゃん」はもともと自分の娘が5歳の時に五線譜が読めず苦労しているの
-
-
リズムくんHD 1.0.1 をリリースしました (2012/09/01)
iPhone/iPad はサイレントモードにしても音が鳴る | DevCafeJp iOSの消音
-
-
KickstarterでMiselu の iPad用キーボード C.24 に出資してみた
C.24 - The Music Keyboard for iPad by Miselu —