1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

iOS13以降のUIActivityViewControllerでUIImageのプレビューをなんとかしたい

Last updated at Posted at 2020-05-18

#UIActivityViewControllerでUIImageのプレビューをなんとかしたい
##動機
自作アプリでUIActivityViewControllerを使ってみたけど、サムネイルがアプリアイコンになってしまう。
「メモ」アプリみたいに、シェアする画像をサムネイルに使いたい。

を読んでも、コードがよく分からなかったので、

を参考にしてやってみた。

#やり方

LinkPresentation frameworkをインポート

import LinkPresentation

UIViewControllerに変数を宣言する

var shareImage: UIImage? //シェアするイメージ

UIActivityViewControllerの呼び出し

[shareImage, self]をactivityItemsにセットする
selfをセットするのは、ViewControllerにUIActivityItemSourceを実装してあげるといいらしいので.
shareImage = シェアするイメージ
let share = UIActivityViewController(activityItems: [shareImage, self], applicationActivities: nil)
present(share, animated: true, completion: nil)

UIViewControllerに、UIActivityItemSourceのメソッドを実装してあげる

extension viewController : UIActivityItemSource {
func activityViewControllerPlaceholderItem(_ activityViewController: UIActivityViewController) -> Any {
return ""
}
func activityViewController(_ activityViewController: UIActivityViewController, itemForActivityType activityType: UIActivity.ActivityType?) -> Any? {
return nil
}
func activityViewControllerLinkMetadata(_ activityViewController: UIActivityViewController) -> LPLinkMetadata? {
let imageProvider = NSItemProvider(object: shareImage!)
let metadata = LPLinkMetadata()
metadata.imageProvider = imageProvider
return metadata
}
}

これで、サムネイルがうまく表示される。
UIActivityItemSourceを扱うclassを作れるとさらに良さげ。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?