2011-06-01 43 views
1

TTSearchlightLabel類在Three20框架中忽略了空格和拉丁字母。它的渲染代碼如下所示:在TTSearchlightLabel中沒有uni代碼支持

CGContextSelectFont(context, [_font.fontName UTF8String], _font.pointSize, kCGEncodingMacRoman); 
CGContextSetTextDrawingMode(context, kCGTextFill); 
CGContextSetTextMatrix(context, CGAffineTransformScale(CGAffineTransformIdentity, 1, -1)); 
CGContextSetFillColorWithColor(context, _textColor.CGColor); 
CGContextShowTextAtPoint(context, x, y, [self.text UTF8String], self.text.length); 

我對這種低級渲染不是很熟悉,但是有人擺脫了這種情況嗎?我也嘗試kCGEncodingFontSpecific,但它甚至變得更糟。

我猜這個問題不是那麼快就可以解決的,有沒有替代方案來獲得這種文本效果?

非常感謝, 岡特

+0

我也有同樣的問題。有誰已經解決了這個問題了嗎? – Buju 2011-08-03 09:06:49

+0

您是否搜索過他們的網站或幫助/論壇?我假設其他人會遇到這個問題並首先在那裏發佈。如果沒有其他人,你應該提交錯誤報告。 – JoePasq 2012-03-15 14:47:04

回答

0

documentationCGContextSelectFont的編碼參數表示:

textEncodingCGTextEncoding值,指定用於字體的編碼。有關可用值的說明,請參閱「CGTextEncoding」。

的可能值是:

kCGEncodingFontSpecific 的字體的內置編碼。

kCGEncodingMacRoman macroman編碼的。 MacRoman是最初爲在Mac OS中使用而創建的ASCII變體,其中字符127和更低字符是ASCII,字符128和更高字符是非英文字符和符號。

將參數更改爲kCGEncodingFontSpecific並且它應該正確顯示。