3

drawInContextメソッドは次のようになります。

- (void)drawInContext:(CGContextRef)context {
CGRect circleRect = CGRectInset(self.bounds, 1, 1);

UIColor * __autoreleasing borderColor = [UIColor whiteColor];
UIColor * __autoreleasing backgroundColor = [UIColor colorWithWhite:0 alpha: 0.75];

CGContextSetFillColorWithColor(context, backgroundColor.CGColor );
CGContextSetStrokeColorWithColor(context, borderColor.CGColor );
CGContextSetLineWidth(context, 2.0f);

CGContextFillEllipseInRect(context, circleRect);
CGContextStrokeEllipseInRect(context, circleRect);

CGFloat radius = MIN(CGRectGetMidX(circleRect), CGRectGetMidY(circleRect));
CGPoint center = CGPointMake(radius, CGRectGetMidY(circleRect));
CGFloat startAngle = -M_PI / 2;
CGFloat endAngle = self.progress * 2 * M_PI + startAngle;
CGContextSetFillColorWithColor(context, borderColor.CGColor );
CGContextMoveToPoint(context, center.x, center.y);
CGContextAddArc(context, center.x, center.y, radius, startAngle, endAngle, 0);
CGContextClosePath(context);
CGContextFillPath(context);

[super drawInContext:context];
}

しかし、私のiPhone Retinaディスプレイでは、スクリーンショットが示すように非常にピクセル化されているように見えます。どのように猫を修理しますか?

ここに画像の説明を入力してください

4

1 に答える 1

11

さて、私は解決策を見つけました。美しくスケーリングされた画像を描画するには、次のことを行う必要があります。

pie_layer.contentsScale = [UIScreen mainScreen].scale;

この投稿も参照してください: iPhone 4 で CGContext のテキスト描画が拡大されない

于 2012-10-21T20:45:55.177 に答える