【问题标题】:tintedImageProvider does not provide tint color in Graphic Complication着色图像提供程序在图形复杂化中不提供着色颜色
【发布时间】:2020-01-05 12:38:37
【问题描述】:

我正在尝试为我的 Apple Watch 应用程序(即 Graphic Circular)创建图形并发症,但遇到了一些问题。为了同时支持多色和有色表盘,我使用以下代码为我的复杂功能提供图像:

    let graphicCircularTemplate = CLKComplicationTemplateGraphicCircularImage()
    if let tintedImage = UIImage(named: "GraphicCircular"), let fullColorImage = UIImage(named: "GraphicCircularOrange") {
        let tintedImageProvider = CLKImageProvider(onePieceImage: tintedImage)
        var imageProvider = CLKFullColorImageProvider()
        if #available(watchOSApplicationExtension 6.0, *) {
            imageProvider = CLKFullColorImageProvider(fullColorImage: fullColorImage, tintedImageProvider: tintedImageProvider)
        } else {
            imageProvider = CLKFullColorImageProvider(fullColorImage: fullColorImage)
        }
        graphicCircularTemplate.imageProvider = imageProvider
    }

现在我的fullColorImage 如下: fullColorImage

而相同大小的着色图像呈现为模板图像: tintedImage

在多色 Infograph 表盘中,全彩图像看起来符合预期: multicolor

但是当我将表盘更改为选定的色调时,我的着色图像呈现为纯白色,并且系统色调颜色不会应用于它: tint color

所以我的问题是我缺少什么以及为什么我的 tintedImageProvider 不提供任何色调?

此外,我注意到 Graphic Circular 类型的系统并发症似乎有一个略带灰色的背景,这使它们在黑暗的表盘环境中与众不同。我已将相同的背景颜色硬编码为全彩色图像,但是当面部切换到色调模式时 - 我的并发症的背景完全变黑了。关于如何实现这种灰色背景效果的任何想法?

【问题讨论】:

    标签: swift watchkit apple-watch-complication clockkit


    【解决方案1】:

    嗯,解决方案是在多次重复文档后出现的 - 决定发布答案,以防其他人发现此解决方案与我一样不明显:

    在支持带有全彩复杂图像的多色表盘的图形复杂功能中,系统色调仅适用于tintedImageProvidertwoPieceImageForeground 参数。仅仅提供一个模板onePieceImage 是不行的。

    创建一个两件式图像还解决了我关于图形圆形复杂功能中图像的灰色背景的问题的第二部分。为了解决这个问题,我创建了一个具有所需复杂尺寸的普通矩形图像,将其背景颜色设置为黑色,并将 alpha 设置为 11%。将此图像作为twoPieceImageBackground 参数传递给tintedImageProvider 会在去饱和时创建所需的灰色背景效果。

    【讨论】:

    • fullColorImageonePieceImage 有什么区别?您能否详细介绍一下您用于这四张图片的内容?
    猜你喜欢
    • 1970-01-01
    • 2018-11-30
    • 2015-07-16
    • 1970-01-01
    • 2011-10-01
    • 2014-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多