iOS 8自定义UIActivity图标时出现黑色背景颜色问题

8

我想要添加一个类型为UIActivityCategoryAction的自定义UIActivityUIActivityController中。但是在iOS 8中,所有的自定义UIActivity都会显示黑色背景。

有没有办法改变这个?

1个回答

22

这里有三个要点

  1. 图像背景,
  2. 图像不透明度,
  3. 图像大小。

iOS 7

  1. 图像背景

图像背景应该是透明的。

  1. 图像不透明度

图标的“可见部分”应该是不透明的。请注意,任何颜色信息都不会被保留

  1. 图像大小

因为如果太小/太大,系统不会缩放图像,所以您必须提供适当大小的图像。我发现图像大小为120px x 120px非常合适。

注意:此大小还考虑了图标填充。


iOS 8+

  1. 图像背景

图像背景应为白色,以匹配系统中的UIAction图标,但您也可以使用任意颜色。

  1. 图像不透明度

与iOS 7中相同,图标的“可见”部分应该是不透明的,但在iOS 8+中颜色信息将被保留

  1. 图像大小

我使用大小为240px x 240px的图像,但您可以应用自定义大小的图像,因为如果太小/太大,系统会自动缩放以填充图像


总结

也就是说,如果您想同时支持iOS 7和iOS 8+,您必须有两个版本的自定义UIActivity图标图像。

对于iOS 7,应使用适合您需求的大小120px x 120px大小的图像,并带有透明背景

对于iOS 8+,应使用自定义大小的正方形图像,并具有白色背景和任意颜色的“可见”部分。

代码示例:

- (UIImage *)activityImage
{
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {
        return [UIImage imageNamed:@"activity_icon_ios8"];
    }
    else {
        return [UIImage imageNamed:@"activity_icon"];
    }
}

希望这能有所帮助!


1
很棒的回答。这个有文档记录吗? - robinkunde
3
“More”按钮旁边显示的图标有什么相关信息? - Xcoder
@rkunde 谢谢!我一直找不到关于这个的文档。我相信他们将来会添加它。 - damirstuhec
@Xcoder 我明白你的意思。我认为目前没有办法为“UIActivityController”的“活动”屏幕定制/提供自定义活动图标。至少目前是这样。 - damirstuhec
iOS 8图标不需要有白色背景。我可以使用任何颜色,比如绿色。 - Pwner
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接