問候!我試圖在駐留在可縮放UISCrollView中的CALayer中繪製一系列圓圈。這是可以縮放的圖層。如果我畫使用CAShapeLayer圓圈,然後他們放大精美:CALayer的抗鋸齒圖紙
CAShapeLayer plotLayer = [CAShapeLayer layer];
plotLayer.bounds = self.bounds;
plotLayer.anchorPoint = CGPointZero;
plotLayer.position = CGPointZero;
CGMutablePathRef path = CGPathCreateMutable();
for (id one in many) {
CGRect ellipseRect = [one circleRect];
CGPathAddEllipseInRect(path, NULL, ellipseRect);
}
plotLayer.path = path
CFRelease(path);
[self.layer addSublayer:plotLayer];
[plotLayer setNeedsDisplay];
然而,當我嘗試用香草核心圖形畫在我的drawLayer:inContext的:法,圓得非常鋸齒(徹頭徹尾的親走樣!)抗鋸齒暗中搗鬼再多似乎幫助:
-(void)drawLayer:(CALayer *)layer inContext:(CGContextRef)context
{
CGContextSetAllowsAntialiasing(context, true);
CGContextSetShouldAntialias(context, true);
CGContextClip(context);
for (id one in many) {
CGRect ellipseRect = [one circleRect];
CGContextStrokeEllipseInRect(context, ellipseRect);
}
}
我試圖找出CAShapeLayer做能得到這樣好的抗鋸齒使(除了我自己的薰陶),我可以充分利用我的繪圖中的核心圖形,而不僅僅是我可以用CAShapeLayer獲得的筆畫/填充。我是否錯過了某處的轉換?
非常感謝!
感謝您的想法,但沒有運氣。 CGContextSetInterpolationQuality不起作用。我也試過CGContextSetFlatness,它也沒有效果。 – kalperin 2011-05-27 16:20:03