2011-12-09 78 views
1

的我畫橢圓:iPhone如何半夾橢圓

CGContextFillEllipseInRect(contextRef, CGRectMake(50, 50, 50, 128)); 

但我只需要橢圓形的一半,是有辦法夾的另一半?

回答

5

在調用繪圖方法,你可以剪輯的背景下,以橢圓的一部分:那解決我的問題的一半

CGContextSaveGState(contextRef); 
BOOL onlyDrawTopHalf = YES; 
CGFloat halfMultiplier = onlyDrawTopHalf ? -1.0 : 1.0; 
CGRect ellipse = CGRectMake(50, 50, 50, 128); 
CGRect clipRect = CGRectOffset(ellipse, 0, halfMultiplier * ellipse.size.height/2); 
CGContextClipToRect(contextRef, clipRect); 
CGContextFillEllipseInRect(contextRef, ellipse); 
// restore the context: removes the clipping 
CGContextRestoreGState(contextRef); 
+0

。現在另一方面,我想也有半橢圓(與第一個橢圓不同),但再次使用您的代碼並不會起作用,新的橢圓從不顯示。我只是將BOOL更改爲NO,以及橢圓的一些參數。 – MegaManX

+0

你用NO運行代碼時看到了什麼? – FelixLam

+0

我已經更新了代碼。它現在在繪製後恢復上下文的狀態。這有幫助嗎? – FelixLam