我正在尝试向UIActivity
添加UIActivityCategoryAction
类型的自定义UIActivityController
。但是在iOS 8中,所有这些都出现在黑色背景下。
有没有办法改变这个?
答案 0 :(得分:22)
这里有 3件事:
图像背景应该是透明的。
"可见部分"图标应该是非透明的,也就是不透明的。请注意,任何颜色信息都不会被保留:
因为如果太小/太大,图像不会被系统缩放,您必须提供适当大小的图像。我发现图片大小120px x 120px
非常合身。
注意:此尺寸也会考虑图标填充。
图片背景应为白色以匹配系统UIAction
图标,但您也可以使用任意颜色。
与iOS 7相同,"可见"图标的一部分应该是非透明的,也就是不透明,但在iOS 8+中颜色信息将被保留。
我使用尺寸为240px x 240px
的图片,但您可以应用自定义尺寸的图片,因为系统会自动加载图片,如果太小/太大。
也就是说,如果您想同时支持iOS 7和iOS 8+,您必须拥有2个版本的自定义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"];
}
}
希望有所帮助!