2011-08-31 48 views
8

當我使用CGContext繪製一些文本時,它被繪製爲鏡像。iPhone - 使用CGContext繪製一些文字:確定但是...鏡像

我試圖應用一些轉換,然後繪製得很好,但其餘繪圖和所有座標似乎都不好。

我試圖保存和恢復上下文,然後繪製文本(和aplying轉換),但這並沒有幫助。

如何使用CGContext將一些文本繪製到View上,而不會影響繪圖的其餘部分,也不會影響該文本的屏幕CGPoint座標?

+0

我也得到Y軸鏡像文本。我怎樣才能解決這個問題? – Bogdan

回答

12

你能澄清你的意思是'鏡像'嗎?以下是一些用於繪製黑色文本的代碼。它不應該被「鏡像」。

CGRect viewBounds = self.bounds; 
CGContextTranslateCTM(ctx, 0, viewBounds.size.height); 
CGContextScaleCTM(ctx, 1, -1); 
CGContextSetRGBFillColor(ctx, 0.0, 1.0, 0.0, 1.0); 
CGContextSetLineWidth(ctx, 2.0); 
CGContextSelectFont(ctx, "Helvetica", 10.0, kCGEncodingMacRoman); 
CGContextSetCharacterSpacing(ctx, 1.7); 
CGContextSetTextDrawingMode(ctx, kCGTextFill); 
CGContextShowTextAtPoint(ctx, 100.0, 100.0, "SOME TEXT", 9); 
+0

這真的很接近我的工作。今晚我會試一下你的一段代碼。 – Oliver

+0

文本是綠色:( –

+1

因爲CGContextSetRGBFillColor的(CTX,0.0,1.0,0.0,1.0); – iosDeveloper

8

我認爲你必須扭轉文本矩陣:

CGAffineTransform transform = CGAffineTransformMake(1.0, 0.0, 0.0, -1.0, 0.0, 0.0); 
CGContextSetTextMatrix(context, transform); 
+0

感謝這個簡單的解決方案!工作就像一個魅力。 – stonecompass