You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PencilKit绘图在iOS14深色模式下渲染为图片时线条偶发变黑问题

问题结论

这是iOS 14系统自带的PencilKit框架bug,和你的实现逻辑无关,该问题在iOS 15及更高系统版本中已经被官方修复。

触发原因

该bug仅在iOS 14的深色模式场景下触发:调用PKDrawing的image(from:scale:)方法生成图片时,会随机出现trait collection识别错误,错误套用浅色模式的样式规则适配笔触颜色,导致深色模式下的白色笔触渲染为图片时变成黑色。由于浅色模式下不会触发反向的样式适配逻辑,因此你不会遇到黑色笔触变白的问题。

iOS 14兼容方案

如果你的应用需要支持iOS 14版本,可以通过强制指定渲染时的界面样式来规避这个随机bug,修改后的参考代码如下:

// 强制指定和当前界面一致的样式,避免系统随机识别错误
let fixedTraits = UITraitCollection(userInterfaceStyle: currentTraits.userInterfaceStyle)
fixedTraits.performAsCurrent {
    image = drawing.image(from: visibleRect, scale: UIScreen.main.scale)
}

如果需要固定输出某一种样式的渲染结果,直接将userInterfaceStyle指定为.light或者.dark即可。

内容的提问来源于stack exchange,提问作者NZ Programmer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 00:48:01