是否可以覆盖由UIActivityViewController使用的内置UIActivity类型执行的活动?
例如,我希望Facebook活动使用我自己的自定义视图,而不是内置的视图。我知道你可以子类化UIActivity来创建你自己的特定于应用的活动,但是你总是坚持内置活动的默认行为吗?
发布于 2013-05-02 19:00:09
你不能重写内置的代码。您能做的最好的事情就是停用它们,并用您自己的UIActivity子类替换它们。从功能上讲,这与覆盖它们具有相同的效果。
然而,在视觉上,这意味着您必须为这些服务提供您自己的图标图像。然后,苹果的代码将获取这些图像,丢弃颜色数据,并使用alpha地图在苹果通常的黑点背景下生成灰度着色版本。您不能为您自己的自定义活动提供彩色图像。据推测,这是为了阻止人们复制“官方”服务图标,并出于自己的目的对其进行颠覆,即假装在Facebook上发布一些东西,而实际上却做了一些完全不同的事情。
发布于 2014-01-15 18:03:43
您不能覆盖内置UIActivity类型的行为-但是,您可以通过提供自己的UIActivityItemProvider子类来覆盖它们获得的数据。要做到这一点,你必须重写– activityViewController:itemForActivityType:,所以虽然它不是你想要的100%的东西,但你至少可以根据你的意愿改变一下内置的东西。
https://stackoverflow.com/questions/14205308
复制相似问题