私はに取り組んでいますCAShapeLayer
。非線形パスを描画しようとしています。フレームをに設定したいので、メソッドをCAShapeLayer
使用してからフレームを取得できます。CGPathGetPathBoundingBox
CGPathRef
コードは次のとおりです。
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddArc(path, NULL, rect.size.width/2, rect.size.height/2, 100, (0), (M_PI_2), NO);
CGPathAddArc(path, NULL, rect.size.width/2, rect.size.height/2, 100-50, (M_PI_2), (0), YES);
CGPathCloseSubpath(path);
CAShapeLayer* arcLayer = [[CAShapeLayer alloc]init];
arcLayer.path = path;
arcLayer.frame = CGPathGetPathBoundingBox(path);
arcLayer.bounds = CGPathGetPathBoundingBox(path);
[self.layer addSublayer:arcLayer]; `
コードを注意深く参照してください。同じフレームと境界を CAShapeLayer に設定しました。問題は、境界 (フレームと同じ) を設定していない場合、コンテンツが表示されないか、フレーム内にコンテンツが表示されないことです。なぜですか?助けてくださいありがとうございます。