iOS 8.3:UIActivityViewController 显示无关的行

iOS 8.3: UIActivityViewController shows extraneous row

我有一个 UIActivityViewController,我已经排除(使用 excludedActivityTypes)所有 UIActivityCategoryAction activity 类型。

在 iOS 8.2 中,对于 UIActivityCategoryShare activity 类型,UIActivityViewController 只会显示一行。

在 iOS 8.3 中,UIActivityCategoryAction 为空行。请参阅下面的屏幕截图,其中第二行只有 "More".

如何在 iOS 8.3 中删除 UIActivityViewController 中的 UIActivityCategoryAction

这是特意设计的,因此用户可以重新添加他们隐藏的系统和第三方操作。

更多是系统默认的。用于重新排序应用程序。对于扩展(在 IOS 8 中介绍),更多 按钮用于重新排序应用程序以及在对话中添加应用程序。我们无法控制它。

希望对您有所帮助。

In iOS 8, UIActivityViewController is still an API that only provides custom functions, but not custom UI. You can't change the way it looks. The only part of the visual style you can change is the icon of your custom UIActivity subclasses. (ref)

这就是 Apple 的实现方式,从 8.3 开始无法更改。如果你真的想避免额外的行和 "More" 按钮,你可以实现 UIActivityViewController 替换。这是最近维护的一对:


OvershareKit


URBNShareKit


参考文献:

我想办法删除 UIActivityCategoryAction 。 像那样: demo

由于 UIActivityCategoryAction 是 CollectionView 的第二部分, 您可以找到collectionView 的dataSource 并通过method swizzling 更改"numberOfSectionsInCollectionView:" 的实现。 这是演示:enter link description here

UIActivityCategoryAction 是 UIColletionView 的第二个部分,将部分数更改为 1,UIActivityCategoryAction 将消失。

这是demo