2010-11-10 49 views
1

我想在我的CoreGraphics函數中在i上顯示變音符號:ï。 我試圖使用它的Unicode代表(ï),但我沒有設法解決它。CoreGraphic - 在i上顯示變音符號

這裏是我的代碼:

void drawColorString(CGContextRef ctx, NSString *text, UIColor *color, CGPoint pos){ 
    CGContextSaveGState(ctx); 
    [color setFill]; 
    CGContextSelectFont(ctx, "Georgia-BoldItalic", 14, kCGEncodingMacRoman); 
    CGContextSetTextDrawingMode(ctx, kCGTextFill); 
    CGAffineTransform xform = CGAffineTransformMake(1.0, 0.0, 0.0, -1.0, 0.0, 0.0); 
    CGContextSetTextMatrix(ctx, xform); 
    CGContextShowTextAtPoint(ctx, pos.x, pos.y, [text UTF8String], text.length); 
    CGContextRestoreGState(ctx); 
} 

它非常適用於普通字符串,但我得到的每一個特殊字符的方...

誰能幫助我?

謝謝。 R.

回答

1

在Quartz中繪製文本很糟糕。原因之一是它不支持Unicode:你的選擇是普通的舊ASCII和MacRoman。你可以通過查找角色的字形來做到這一點,但這並不好玩,我敢打賭,有一些簡單的方法可以讓它錯誤。

您可以很容易地在MacRoman中繪製一個ï,但更好的解決方案是切換到Core Text。

+0

謝謝你的回答。 我不熟悉核心文本,但我讀它需要iOS 3.2,我需要針對我的應用程序的iOS 3.0。這就是爲什麼我堅持使用Quartz。 我會更樂意切換到更簡單的東西... – Romain 2010-11-10 06:54:23

+0

好吧,你是對的。我退出Quartz,並使用NSString中的drawInRect:withFont:方法 – Romain 2010-11-11 23:10:25