创建类似于新的 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 按钮共享的自定义共享视图的主要内容,如果未能解决你的问题,请参考以下文章
在 Swift 中将自定义 UITableViewCell 共享到多个 UITableViewController