在TTSearchlightLabel中没有单一代码支持

时间:2011-06-01 09:34:16

标签: iphone animation text three20

Three20框架中的TTSearchlightLabel类忽略空格和拉丁字母。它的渲染代码如下所示:

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,但它甚至变得更糟。

我猜这个问题不是那么快就可以修复,是否有替代方法可以获得这种文字效果?

非常感谢, 冈特

1 个答案:

答案 0 :(得分:0)

CGContextSelectFont编码参数的documentation表示:

  

textEncoding   一个CGTextEncoding值,指定用于字体的编码。有关可用值的说明,请参阅“CGTextEncoding”。

可能的值是:

  

kCGEncodingFontSpecific   字体的内置编码。

  

kCGEncodingMacRoman   MacRoman编码。 MacRoman是最初为在Mac OS中使用而创建的ASCII变体,其中字符127和更低的字符是ASCII,字符128和更高的字符是非英文字符和符号。

将参数更改为kCGEncodingFontSpecific,它应该正确显示。