【问题标题】:iOS 8 custom UIActivity image black background coloriOS 8 自定义 UIActivity 图片黑色背景色
【发布时间】:2014-09-12 21:40:03
【问题描述】:

我正在尝试将UIActivityCategoryAction 类型的自定义UIActivity 添加到UIActivityController。但在 iOS 8 中,它们都以黑色背景显示。

有办法改变吗?

【问题讨论】:

    标签: cocoa-touch ios8 uiactivityviewcontroller uiactivity


    【解决方案1】:

    这里有 3 件事需要注意:

    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+,您应该使用 自定义尺寸 带有 白色背景 和任意颜色的“可见”部分的方形图像。 p>

    代码示例

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

    希望有帮助!

    【讨论】:

    • 很好的答案。这在任何地方都有记录吗?
    • 点击“更多”时活动旁边显示的图标上有任何信息吗?
    • @rkunde 谢谢!我还没有找到任何关于此的文档。我相信他们将来会添加它。
    • @Xcoder 我明白你的意思了。我认为没有办法为UIActivityController 的“活动”屏幕定制/提供自定义活动图标。至少现在是这样。
    • iOS 8 图标不需要有白色背景。我可以使用任何颜色,例如绿色。
    猜你喜欢
    • 2014-11-17
    • 1970-01-01
    • 2015-10-03
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-30
    • 1970-01-01
    相关资源
    最近更新 更多