gpt4 book ai didi

ios - CALayer Antialiasing 不如 UIView antialiasing

转载 作者:IT王子 更新时间:2023-10-29 08:08:03 28 4
gpt4 key购买 nike

我一直在尝试使用 CALayer 制作圆形绘图的动画。一切正常,但问题是 - 绘制的圆圈抗锯齿不够。它的边界有点太粗糙(或者如果使用光栅化则模糊)。 (启用抗锯齿)

也试过:

edgeAntialiasingMask = kCALayerLeftEdge | kCALayerRightEdge | kCALayerBottomEdge | kCALayerTopEdge;

没用。

这是一个没有光栅化的例子: enter image description here

这是一个光栅化的例子:(尝试从 1.0 到 4.0 的值(只是为了确定。结果 - 相同。))

enter image description here

这里是同一个圆圈,但是绘制在 UIView drawrect 中:

enter image description here

你可以看到,使用 UIView drawrect 绘制的圆看起来好多了。

我不能使用 UIView 的原因是因为我需要为圆圈填充设置动画。使用 CALayer 真的很容易,但是在 UIView 上做同样的事情,我真的不知道这是否可能。 (我可以尝试启动 drawrect: 每 1/60 秒,但我认为它会变得迟缓,因为它不是那样的)。

那么 - 有没有人有任何解决方案可以让我在 CALayer 上绘制的圆/线看起来与在 UIView 上绘制的一样?

最佳答案

我之前在 Retina 设备上的 CALayer 中遇到过像素化绘图问题。 (我假设您在 Retina 设备上看到了这个问题)执行以下操作解决了我遇到的问题:

layer.contentsScale = [[UIScreen mainScreen] scale];

您不需要处理光栅化或抗锯齿。在我自己的代码中,我最初实现了将某些东西绘制到 UIView 中,后来我将其更改为在 CALayer 中绘制,并简单地设置了 contentsScale 属性使两者绘制相同。

关于ios - CALayer Antialiasing 不如 UIView antialiasing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21392675/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com