CCLabelTTF自动高度

时间:2012-07-12 20:39:23

标签: cocos2d-iphone kobold2d

在下面的代码中,我试图通过将“dimensions”中的Y参数设置为0来使文本换行到下一行。但是文本不会换行。但是,如果我将其设置为其他正值,例如“100”,它确实会包装。

此行为在整个网络中都有记录。这是其中一篇文章:http://www.cocos2d-x.org/projects/cocos2d-x/wiki/How_does_CCLabelTTF_support_line_breaks_and_wrapping

CCLabelTTF *distrDescLabel = [CCLabelTTF labelWithString:@"Nullam id dolor id nibh ultricies vehicula ut id elit."
                                                      dimensions:CGSizeMake(director.screenSize.width - 20, 0) 
                                                      hAlignment:UITextAlignmentLeft 
                                                   lineBreakMode:UILineBreakModeWordWrap 
                                                        fontName:@"Helvetica" 
                                                        fontSize:16.0f];

我正在使用XCode 4.3.3和Kobold2D 2.0.1并在iOS模拟器和OS X应用程序下运行示例。在这两种情况下,结果都是一样的。

有人可以验证这是一个错误吗?

2 个答案:

答案 0 :(得分:0)

对于CCLabelTTF标签的自动高度,我使用了这个简单的例程:

while (label.contentSizeInPoints.height > targetHeight) {
    label.fontSize = label.fontSize-0.5;
}

不要广泛使用它,因为每次循环都会完全重新计算CCLabelTTF标签。

希望它会帮助某人

答案 1 :(得分:-1)

在cocos2d-iphone中没有自动换行支持。该链接指向cocos2d-x,我想他们已经添加了自己的解决方案。

在cocos2d-iphone中,您必须分解字符串,然后显示多个标签,每行一个。