3

ドキュメントは、CAShapLayer はアンチエイリアス処理されていると述べていますが、なぜこの結果が得られたのでしょうか。drawRectメソッドでCGContextを使って円も描いてますが、とても完璧です。

   UIBezierPath *path = [UIBezierPath bezierPath];
    [path appendPath:[UIBezierPath bezierPathWithOvalInRect:CGRectMake(150, 300, 136, 136)]];

    self.circleLayer = [CAShapeLayer layer];
    self.circleLayer.path = path.CGPath;
    self.circleLayer.frame = self.bounds;
    self.circleLayer.fillColor = [[UIColor whiteColor] colorWithAlphaComponent:0.6].CGColor;
    [self.layer addSublayer:self.circleLayer];

ここに画像の説明を入力

4

3 に答える 3

2

UIBezierPath docsによると、 「一連のベジエ曲線を使用して楕円形に近似bezierPathWithOvalInRect:する閉じたサブパスを作成する」ため、完全な円を描画できない場合があります。

于 2013-08-28T16:25:55.800 に答える
1

UIBezierPath を使用して円を描くと、ベジエ曲線からの近似であるため、完全な円にはなりません。

正方形の UIView から真円を描くことができます。例えば:

myView.layer.cornerRadius = myView.frame.size.width/2;

このトピックでは、円を描く 3 つの方法を説明します -> CAShapeLayer と UIBezierPath を使用して滑らかな円を描くには?

于 2014-09-05T15:30:09.730 に答える