CCLabelTTF自动高度

问题描述:

在下面的代码中,我试图通过将“尺寸”中的Y参数设置为0来使文本换行到下一行。但文本不换行。但是,如果我将其设置为其他正值,例如“100”,它会自动换行。CCLabelTTF自动高度

此行为记录在整个网络中。下面是文章之一: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]; 

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

任何人都可以验证这是一个错误吗?

+0

'kCCTextAlignmentCenter'比'UITextAlignmentLeft'一个参数'hAliginment更好:'。 – Dalinaum 2013-10-13 05:37:45

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

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

+1

但是,如果要指定高度“尺寸:CGSizeMake(100,100)”,例如,换行符确实有效。我想在这里实现自动高度应该很简单。 – Rhuantavan 2012-07-13 09:07:01

+0

cocos2d支持换行符,但v维设置为0不起作用 – OMGPOP 2013-08-02 07:07:28

对于CCLabelTTF标签的自动高度我用这个简单的程序:

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

不要使用此广泛的CCLabelTTF标签完全在每个循环重新计算。

希望这将帮助别人