创建类似于新的 iOS 6 按钮共享的自定义共享视图

Posted

技术标签:

【中文标题】创建类似于新的 iOS 6 按钮共享的自定义共享视图【英文标题】:Creating a custom sharing view similar to new iOS 6 button sharing 【发布时间】:2012-10-16 07:00:18 【问题描述】:

在新的 ios 6 中,Apple 添加了新的 UIActivityViewController(图像 A)共享菜单,该菜单具有小图标按钮可供共享,而不仅仅是旧的 UIActionSheet 文本按钮。

我想显示一个带有自定义按钮的 UIActivityViewController。我知道他们有一个可以显示的默认应用程序列表(邮件、消息、Facebook、Twitter 等),但我想自定义单击这些按钮时会发生什么。当您单击邮件共享图标时,它会打开带有新消息的邮件应用程序,例如,如果单击邮件应用程序时,它会打开 Twitter 应用程序(不是真的,只是与默认设置不同) .现在我似乎找不到在按钮后面添加我自己的方法的方法。

使用最新的 ShareKit,他们添加了 Instagram 共享功能,当您选择与其共享时,会显示一个新视图,该视图看起来与 UIActivityViewController 屏幕完全相同(图 B)。他们似乎已经知道如何添加自定义按钮来执行自定义操作。我搜索了 ShareKit 代码,但似乎找不到它在哪里或如何工作。

也许我所问的甚至还不可能,但感谢您提供任何帮助!

图片A

图片B

【问题讨论】:

【参考方案1】:

看看这个link。这是在 iOS 6 上分享的一个很好的介绍。

以下引述来自这篇博文:

您甚至可以添加对您自己的自定义共享选项的支持,并且仍然让UIActivityViewController 处理与用户的交互。为此,请将抽象 UIActivity 类子类化并覆盖所需的方法(有关详细信息,请参阅文档)。

【讨论】:

这就是我要找的。谢谢你的回答:)【参考方案2】:

Sharekit 是一种抽象,无法按照您希望的使用方式进行自定义。 Apple 控制这些服务的接口。

不幸的是,如果您想自定义共享及其工作方式,您将需要实现自己的 sharekit 版本,以及这些服务的 UI 和 API 入口点。

Sharekit 存在,因此您不必这样做。随着时间的推移,需求会发生变化,我预计 Apple 会随意添加和删除服务。

“按原样”使用 API 是您最明智的选择。

【讨论】:

【参考方案3】:

我发现了这个很棒的教程。效果很好,

Custom UIActivityViewcontroller

【讨论】:

那个链接失效了【参考方案4】:

图片 B 实际上使用的是 Instagram 文档交互代码,而不是带有自定义 UIActivity 的 UIActivityViewController。你可以在这里阅读更多关于 Instagram 的“钩子”...custom iphone hooks

第 3 方为 Instagram 创建了一个 UIActivity,您可以找到 here... 这会在选择时打开与 ShareKit 相同的菜单,因为这是将图像直接传递到 Instagram 的唯一方法。

【讨论】:

以上是关于创建类似于新的 iOS 6 按钮共享的自定义共享视图的主要内容,如果未能解决你的问题,请参考以下文章

带有自定义视图控制器的 iOS 共享扩展

在 Swift 中将自定义 UITableViewCell 共享到多个 UITableViewController

在我的自定义按钮中打开 Airplay 弹出框

Facebook SDK iOS 的自定义分享、登录按钮

尝试从我的自定义 iOS 应用与 Google+ 共享时出现 404 错误

(iOS 6) 从 UIActivityViewController 外部使用 UIActivity 的自定义子类