在编辑器上做一个Label,填入文字“123”,模式用Auto,如图bug_1
在代码里拿到这个Label,修改它的文字:
_tipLabel->setText(“sdfsdfsdf”);
得到的结果如图bug_2,文字显示不全
我去查了一下源码,原因见注释:
// Helper
bool CCLabelTTF::updateTexture()
{
CCTexture2D *tex;
tex = new CCTexture2D();
if (!tex)
return false;
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) || (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
ccFontDefinition texDef = _prepareTextDefinition(true);
tex->initWithString( m_string.c_str(), &texDef );
#else
tex->initWithString( m_string.c_str(),
m_pFontName->c_str(),
m_fFontSize * CC_CONTENT_SCALE_FACTOR(),
CC_SIZE_POINTS_TO_PIXELS(m_tDimensions), //2.2.1版本,这个地方传入的m_tDimensions为0, 就没BUG,2.2.2版本,这个地方传入的m_tDimensions不为0,而是UI编辑器auto里显示的宽高,就会出问题
m_hAlignment,
m_vAlignment);
#endif
如果强行把m_tDimensions设置为0,单行Label的Bug就没了,但是TextArea模式的Label就会出问题
推测问题是:如果Label是TextArea模式,应该设置这个值,如果Label不是TextArea模式,就不应该设置这个值了
应该是UI编辑器载入数据的时候出了BUG
不知道该怎么修改,请开发检查一下吧