我有一个包含 UIView 子类和自定义 CAlayer 的组件。
在 UIView 中有一个用 CoreGraphics 绘制的圆圈,代码如下:
CGRect b = self.bounds;
int strokeSize = 2;
CGRect arcBounds = CGRectMake(b.origin.x+1, b.origin.y+1, b.size.width-2, b.size.height-2);
CGContextSaveGState(ctx); {
CGContextSetLineWidth(ctx, strokeSize);
CGContextSetStrokeColorWithColor(ctx, [UIColor lightGrayColor].CGColor);
CGContextStrokeEllipseInRect(ctx, arcBounds);
} CGContextRestoreGState(ctx);
当我在 UIView 内的 drawRect 方法中绘制该圆圈时,它可以完美运行,并且圆圈绘制得很平滑并且看起来很棒。
当我在这个圆圈上绘制另一个圆圈时出现问题,但第二个圆圈是在 CALayer 中绘制的,实际上是在我的自定义 CALayer 的 drawInContext 方法中。使用相同的代码,圆圈看起来不太好,并且在边框上有一些“像素化”。
关于可能发生什么的任何线索?提前致谢。