iOS 8自定义UIActivity图像黑色背景色

Cyb*_*nfo 8 cocoa-touch uiactivity uiactivityviewcontroller ios8

我想自定义添加UIActivity类型UIActivityCategoryActionUIActivityController.但是在iOS 8中,所有这些都出现在黑色背景下.

有没有办法改变这个?

dam*_*hec 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+,您必须拥有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"];
    }
}
Run Code Online (Sandbox Code Playgroud)

希望有所帮助!

  • 点击"更多"时活动旁边显示的图标的任何信息? (3认同)