Google Photos iOS 应用程序如何自定义原生共享 sheet(例如 UIActivityViewController)?

How did the Google Photos iOS app customize the native share sheet (e.g. UIActivityViewController)?

当您在 Google Photos for iOS 中分享照片时,Google 会在 UIActivityViewController 顶部显示他们自己的自定义视图。我知道这可以通过在顶级 UIWindow 上绘制您自己的视图来完成一半,但是 Google 也以某种方式隐藏底部 'Cancel' 按钮并填充空白以使其成为 UIActivityViewController 更多 "full screen"。他们是否以某种方式将 UIActivityViewController 的视图嵌入到他们自己的视图中?

Google 图片分享 sheet:

标准份额 sheet:

我正在寻找这个问题的答案,偶然发现了你的问题,所以我发了推文。 Matthew Bischoff 向我指出了这一点,它应该或多或少地解释了它是如何完成的。 https://github.com/Jasdev/JDSActivityVC

简短的回答是您将 UIActivityViewController 子类化并弄乱了生成的视图。提示:您需要弄乱视图控制器视图的超级视图 属性。