【发布时间】:2014-02-18 23:44:10
【问题描述】:
我一直在尝试使用 CALayer 绘制圆形动画。这一切都很好,但问题是 - 绘制的圆圈没有足够的抗锯齿。它的边界有点太粗糙了,(如果使用光栅化,它会变得模糊)。 (启用抗锯齿)
也试过了:
edgeAntialiasingMask = kCALayerLeftEdge | kCALayerRightEdge | kCALayerBottomEdge | kCALayerTopEdge;
无济于事。
这是一个没有光栅化的例子:
这是一个光栅化示例:(尝试从 1.0 到 4.0 的值(只是为了确定。结果 - 相同。))
这里是同一个圆圈,但在 UIView drawrect 内部绘制:
您可以看到,使用 UIView drawrect 绘制的圆圈看起来好多了。
我不能使用 UIView 的原因是因为我需要动画圆形填充。使用 CALayer 真的很容易,但是在 UIView 上做同样的事情,我真的不知道它是否可能。 (我可以尝试启动 drawrect:每 1/60 秒,但我认为它会变得迟钝,因为它不是这样的)。
那么 - 有没有人有任何解决方案,如何让 CALayer 上绘制的圆/线看起来与 UIView 上绘制的一样?
【问题讨论】:
-
注意:默认情况下,edgeAntialiasingMask 在所有边缘上启用,因此您的代码应该没有影响。但是,将其设置为
= 0;可能会产生影响(在图像的边缘)
标签: ios objective-c uiview calayer