2011-06-01 54 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并且它应该正确显示。