DR,你是對的:這很混亂!
但我認爲湯姆是正確的,只需使用[aBezierPath stroke]。
所以,這將是這樣的:
REF是(CGContextRef),你已經建立。
YOURBEZIERPATH是(UIBezierPath *)。
不可避免的,你必須處理與「引倒掛」的問題,所以:
UIGraphicsPushContext(REF);
CGContextSaveGState(REF);
CGContextTranslateCTM(REF, 0, the height*);
CGContextScaleCTM(REF, 1.0, -1.0);
[YOURBEZIERPATH stroke];
CGContextRestoreGState(REF);
UIGraphicsPopContext();
所以這是它。
Re 您的評論下面:我有一個UIBezierPaths數組。每個貝塞爾都有自己的風格和顏色。
這是否對您有幫助? ...更換一個「中風」號召,用一個for循環:
UIGraphicsPushContext(REF);
CGContextSaveGState(REF);
CGContextTranslateCTM(REF, 0, the height*);
CGContextScaleCTM(REF, 1.0, -1.0);
for each of YOURBEZIERPATH in your array...
{
CGContextSaveGState(REF);
[YOURBEZIERPATH stroke];
CGContextRestoreGState(REF);
}
CGContextRestoreGState(REF);
UIGraphicsPopContext();
你其實並不需要使用aBezierPath.CGPath,或者,它們的副本打擾。
你是對的,它是非常混亂,UI和CG的兩個世界!
* 身高:經常像self.frame.size.height。我只是將它包括在任何尋找未來通用示例代碼的人中。
你不能只使用UIBezierPath的筆畫方法嗎? – 2011-06-11 11:45:48