2013-07-17 81 views
0

我正在使用CAShapeLayer繪製拼圖.Drawing是一個容易部分的線,也是我做的。但是現在我想繪製橢圓並切割該橢圓的一部分。現在我的問題是如何使用CGPathAddEllipseInRect切割橢圓?是我的代碼:如何切割橢圓?

CAShapeLayer *shapeLayer = [CAShapeLayer layer]; 
    [shapeLayer setBounds:self.bounds]; 
    [shapeLayer setPosition:self.center]; 
    [shapeLayer setFillColor:[[UIColor clearColor] CGColor]]; 
    [shapeLayer setStrokeColor:[[UIColor blackColor] CGColor]]; 
    [shapeLayer setLineWidth:3.0f]; 

    // Setup the path 
    CGMutablePathRef path = CGPathCreateMutable(); 
    CGPathMoveToPoint(path, NULL, 10, 10); 
    CGPathAddLineToPoint(path, NULL, 75,10); 
    CGPathAddEllipseInRect(path, NULL, CGRectMake(75, 10, 50, 20)); 
    [shapeLayer setPath:path]; 
    CGPathRelease(path); 

    [[self layer] addSublayer:shapeLayer]; 

提示將不勝感激。

+0

所以你想要一個缺少橢圓的橢圓,但它是否真的應該成爲該線的一部分(用一條線來製作完整邊框)? – Wain

+0

是的正好。橢圓的一部分應該錯過。沒多少,但一些。我不認爲所以它應該是行的一部分... – user007

回答

1

請勿使用CGPathAddEllipseInRect,您需要計算開始和結束位置,並使用CGPathAddArcToPoint或更可能的情況下使用CGPathAddQuadCurveToPoint

+0

是的,我可以做,但我想CGPathAddEllipseInRect更好。任何方式讓我先試試... – user007

+0

我試過了,但它看起來不像橢圓...有沒有其他的選擇? – user007

+0

不要覺得您僅限於使用1條曲線,您可以添加多條曲線以獲得您之後的形狀。你不能以你最初想要的方式使用'CGPathAddEllipseInRect'。 – Wain