我有一个组件,其中包含一个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方法中绘制的。使用完全相同的代码,圆圈看起来不好,并且边缘有一些“像素化”。
有什么线索可以解决这个问题吗?提前致谢。