Gun*_*nds 19 objective-c calayer uiview ios
我一直在尝试使用CALayer制作圆形绘图动画.这一切都运作良好,但问题是 - 绘制圆圈不足以抗锯齿.边框有点过于粗糙(如果使用栅格化,则会模糊).(启用AntiAliasing)
也尝试过:
edgeAntialiasingMask = kCALayerLeftEdge | kCALayerRightEdge | kCALayerBottomEdge | kCALayerTopEdge;
无济于事.
这是一个没有光栅化的样子:

以下是光栅化的示例:(尝试从1.0到4.0的值(只是为了确定.结果 - 相同.))

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

你可以看到,使用UIView drawrect绘制的圆圈看起来好多了.
我不能使用UIView的原因是因为我需要动画圆填充.使用CALayer非常简单,但是要在UIView上做同样的事情,我真的不知道它是否可能.(我可以尝试启动drawrect:每1/60秒,但我认为它会变得迟钝,因为它不是那样的).
那么 - 有没有人有任何解决方案如何在CALayer上绘制圆圈/线条与UIView上绘制的相同?
Gav*_*vin 46
我以前CALayer在视网膜设备上有像素化绘图的问题.(我假设您在视网膜设备上看到了问题)执行以下操作修复了我遇到的问题:
layer.contentsScale = [[UIScreen mainScreen] scale];
Run Code Online (Sandbox Code Playgroud)
您不应该处理光栅化或抗锯齿.在我自己的代码中,我最初实现了绘制某些内容UIView,后来我将其更改为绘制CALayer,并简单地设置contentsScale属性使两者绘制相同.