PKD为暗模式和亮模式绘制不同的结果

Posted

技术标签:

【中文标题】PKD为暗模式和亮模式绘制不同的结果【英文标题】:PKDrawing different results for Dark Mode and Light Mode 【发布时间】:2019-10-09 11:58:59 【问题描述】:

在暗模式下使用PKDrawing 时,imageFromRect:scale: 生成的图像会返回白色的笔画。在灯光模式下,它使用黑色。背景通常是透明的。

问题:如何强制 PKDrawing 始终像在光照模式下一样工作?

【问题讨论】:

查看onepile.app/download-ios 示例 【参考方案1】:

你可以这样做,通过使用 traitCollection.performAsCurrent:

let darkImage = thumbnail(drawing: drawing, thumbnailRect: frameForImage, traitCollection: UITraitCollection(userInterfaceStyle: .dark))

func thumbnail(drawing: PKDrawing, thumbnailRect: CGRect, traitCollection: UITraitCollection) -> UIImage 

    var image = UIImage()
    traitCollection.performAsCurrent 
        image = drawing.image(from: thumbnailRect, scale: 2.0)
    
    return image

【讨论】:

这太棒了!它完美地工作。谢谢 Stefan,拯救了我的一天。 这对 ios 非常有效 - 但知道如何在 OSX 上做同样的事情吗?

以上是关于PKD为暗模式和亮模式绘制不同的结果的主要内容,如果未能解决你的问题,请参考以下文章

如何为设备的暗模式和亮模式固定背景颜色

暗模式和亮模式html、css、javascript怎么样?

为暗模式/亮模式 JS 保存 cookie - 问题

TailwindCSS 为暗模式类抛出错误

为什么在明暗模式下通知颜色不同?

我可以将样式 html 内容放在 Gmail 签名上吗?