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