2012-04-12 148 views
1

我正在制作一个“行军蚂蚁”选择框架,核心动画层像在这篇文章中:MARCHING ANTS WITH CORE ANIMATION。 但我唯一不喜欢的是CAShapeLayer中的行宽。我需要宽度为1px,但由于抗锯齿,线宽约为2像素,并且有点透明。CAShapeLayer禁用抗锯齿

有什么办法可以关闭抗锯齿功能吗?

回答

3

基础上的文档,它看起来像你坚持antialising:

的CAShapeLayer类绘制在其坐标 空间三次贝塞尔样条曲线。该图形在图层内容和其第一个子图层之间合成。

形状将绘制抗锯齿,并被光栅保持 分辨率独立前尽可能将是 映射到屏幕空间。但是,某些类型的图像处理操作(例如CoreImage滤镜)应用于图层或其原始图元可能会强制在本地坐标空间中进行光栅化。

5

我遇到了同样的问题,幸运的是,我绕了一圈,找到了CGContextSetShouldAntialias(GCContextRef,BOOL)函数。事实证明,抗锯齿发生在图形上下文中。

我在CALayer渲染到位图上下文中测试了一系列形状图层。 默认情况下,我得到了在100-130范围内设置的值(位图值)以及一些较低的数字。在设置CGContextSetShouldAlias(context,NO)之后,我得到了我的值。

+0

该方法的名称是错误的(应该是“CGContextSetShouldAntialias”),但添加这会给我的应用程序性能立即提高15% - 谢谢! – Adam 2013-02-22 21:48:00