cocos2dx 3.0 正式版如何实现 文字自动换行,急 急 急

问题如下:

假设有一个中文字符串 str=“哈佛额外沟通和品位高恢复平稳发哈皮复合瓦,恭候阿瓦防火板南京河南。。。。。。”; 这个字符串事先不知道长度。

我如果要实现自动换行,该怎么做?

下面这种方式直接放弃:(原因是 setSize要填入高度值,但是我不知道字符串有多长,无法估算高度)
tips_Label->ignoreContentAdaptWithSize(false);
tips_Label->setSize(Size(100,200));

之前3.0beta版可以用tips_Label->setTextAreaSize(Size(100, 0));这个函数实现自动换行,且这个函数第2个参数如果是0,就会根据实际字符串的长度来换行显示,但是3.0正式版无效了,我又做了如下测试:tips_Label->ignoreContentAdaptWithSize(false); tips_Label->setTextAreaSize(Size(100, 0)); 还是不行。

我到底该怎么做? 非常急

请使用customer模式,另外text是背景透明的,可以将height设置高一些。

修改一下 UIText.cpp


void Text::labelScaleChangedWithSize()
{
        if (_ignoreSize)
    {
        if( _labelRenderer->getDimensions().width == 0 )  // 增加这一行
            _labelRenderer->setDimensions(0,0);

        ......
}
 

马克一下,正纠结要不要换终极版

Label * pLabel = Label::createWithSystemFont(“文本内容”, “Arial”, 28.0 , Size(400, 0),TextHAlignment::LEFT);

Size szContent;
szContent = scrollContent->getSize();
lbContent->setTextAreaSize(Size(szContent.width, 0));
lbContent->setText(((String*)g_HelpStrings->objectForKey(“daer_introduce”))->getCString());
szContent = lbContent->getVirtualRendererSize();

这个问题搞了我1天多,原来通过getVirtualRendererSize();可以获取它的实际大小,就可以做滚动了。

标记下,日后研究。

我现在用Text类型的指针接一个字符串,就是一个文本内容,请问怎么实现这个文本内容的自动换行啊,文本内容是我事先存在plist文件里的。纠结中……

非常感觉,你这句话的提醒让我以前在JSB下计算string的像素的偏差一下子都修复了。