UIActivityViewControllerをiPadで使う方法

UIActivityViewControllerを、iPadアプリで使おうとして、結構悩みました。Webで探すと、iPhoneでの解説が多くて、iPadの場合とiPhoneの場合の区別が難しい。
ここでは、iPadアプリで使うときのUIActivityViewControllerがiPadアプリできちんと表示されない時にチェックすること。

sourceViewが設定されているか?

UIActivityViewControllerは、iPadでビューを表示する時には、画面を全て占拠するのではなく、ビューの上にポップアップする感じで表示される。なので、どのビューの上に?という情報が必要。
それが、UIActivityViewController.popoverPresentationController.sourceView。
大抵、現在のビューの上に表示したいハズなので、self.viewを設定すれば良い気がする。

sourceRectが設定されているか?

上で書いたように、iPadアプリでは、ポップアップされる形で表示されるので、「どこに」という情報が必要となる。
それが、UIactivityViewController.popoverPresentationController.sourceRect。
画面中央なのか、画面の片隅なのか、お好きなように。
Rectで指定した矩形から伸びる形で表示される。なので、それを考慮して吹き出しが上に向かうのか、下に向かうのかは、自動で調整されます。

コメントを残す

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