iPhone X 上的 CABasicAnimation 导致 "Warping" 个栅格化图层

CABasic Animation on iPhone X causes "Warping" of Rasterised Layers

我正在创建一个在 UIView 的子层上使用​​ CABasic 动画的应用程序。

涉及缩放和位置动画,图层是 CAShapeLayers,shouldRasterize 设置为 true 以实现平滑动画。

这有效,但是在 iPhone X 上,具有深色的图层,例如 UIColor(red: 0, green: 35/255, blue: 9/255, alpha: 1) 看起来 "warp" 在动画期间。

这不会发生在其他 iPhone 上,包括 7 Plus 和 6 Plus,也不会发生在模拟器中。

如果 shouldRasterize 设置为 false,这也不会发生在 iPhone X 上,也不会影响浅色图层。

有没有人遇到过这个and/or有解决办法吗?

事实证明,这实际上发生在所有具有深色和黑色的应用程序中,这是由于在需要黑色时延迟 on/off 像素。

避免这种情况的唯一方法是使用深色而不是黑色,RGB值至少为20,这基本上意味着像素不会关闭,所以你必须决定是否省电真黑还是动感更重要