我想要添加一个类型为UIActivityCategoryAction
的自定义UIActivity
到UIActivityController
中。但是在iOS 8中,所有的自定义UIActivity
都会显示黑色背景。
有没有办法改变这个?
我想要添加一个类型为UIActivityCategoryAction
的自定义UIActivity
到UIActivityController
中。但是在iOS 8中,所有的自定义UIActivity
都会显示黑色背景。
有没有办法改变这个?
这里有三个要点:
图像背景应该是透明的。
图标的“可见部分”应该是不透明的。请注意,任何颜色信息都不会被保留:
因为如果太小/太大,系统不会缩放图像,所以您必须提供适当大小的图像。我发现图像大小为120px x 120px
非常合适。
注意:此大小还考虑了图标填充。
图像背景应为白色,以匹配系统中的UIAction
图标,但您也可以使用任意颜色。
与iOS 7中相同,图标的“可见”部分应该是不透明的,但在iOS 8+中颜色信息将被保留。
我使用大小为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"];
}
}
希望这能有所帮助!