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本体に手を入れさせてもらった。
手を入れないで対応できる方法が思いつけば良かったけれども。
関連記事
-
おすすめ iPhone5用ケース iJacket
iPhone5購入時に同時に購入したケース(写真上)が1ヶ月程度でかなりみすぼらしい状態
-
達人出版会の本をKindleで読んでみる(Windows編)
最近話題の「当事者」の時代の電子書籍版(パブー)や、エキスパート Objective-C プログラミ
-
[iOS SDK] SSPieProgressView を使ってみた
iOS オープンソースライブラリ徹底活用 菊田剛著 秀和システム | DevCafeJp で紹介さ
-
MacOS版1Password を3.8.22から 5.4.1にアップグレード
3.xからの1Password ユーザで、MacOS版もiOS版も有料版を3.xの頃に購入して、
-
4年ぶりにLogLocationsをアップデート
4年ぶりにLogLocationsのアップデート版を作成中。3年間更新していなかったので、画面がフラ
-
スマートフォン手袋を買ってみた 2010
今使っている手袋に穴が空いたので、せっかくなのでスマートフォンが使える手袋を買ってみようと思い探して
-
見たかった映画「ソーシャル・ネットワーク」を見る複数の方法
かなり見たかったけれどもふたごが小さくてとても見に行けなかった映画、「ソーシャル・ネットワーク」がも
-
au iPhone 6 Plus 64GB Silver 届いた
9/19 の発売以来、悩み抜いた結果 au で iPhone 6 Plus 64GB S
-
iOS13からpresentViewControllerの挙動が変わっている
; を実行してViewControllerを表示していま
-
アプリアップデート数はApp Store Connectアプリで確認できる
自作アプリのアップデート数をSafari のApp Store Connectで確認しよう