iOS里NSString有一个sizeWithFont方法,可以知道在当前字体下字符串的宽度,
cocos2d-x里怎么做到这个,我要以一定的宽度切分字符串。
getContentSize().width
CCLabelTTF的getContentSize可以取到大小,但这个方法必须要生成CCLabelTTF然后才能用,效率太差了。相当于有多少个字,就得生成多少次CCLabelTTF,这个底层是Image实现的。
ttf是等宽字体,使用fontSize*str.size()就可以得到宽度
— Begin quote from ____
lzj 发表于 2012-6-11 09:41 url
ttf是等宽字体,使用fontSize*str.size()就可以得到宽度
— End quote
mark,手动计算很长时间了,才知道有这个:funk:
那中英文混排怎么办呢
英文和符号不是等宽的
— Begin quote from ____
ccwccy 发表于 2012-6-11 10:18 url
mark,手动计算很长时间了,才知道有这个
— End quote
手动计算是怎么计算的
调objc方法?
gb2312编码下中文是占两个字节的,宽度也是英文字符的两倍,所以计算方式是一样的,符号也一样,按字节的数量算就可以了。
— Begin quote from ____
dogstar 发表于 2012-6-11 11:00 url
手动计算是怎么计算的
调objc方法?
— End quote
int rowCount=0;
rowCount = strlen(details)%45==0?strlen(details)/45:strlen(details)/45+1;
m_describeLb = CCLabelTTF::labelWithString(details, CCSizeMake(180*EXPAND,15*rowCount*EXPAND), CCTextAlignmentLeft, FONT_DESC_NAME, 12*EXPAND);
m_describeLb->setAnchorPoint(ccp(0,0));
m_describeLb->setIsRelativeAnchorPoint(true);
m_describeLb->setColor(color);
this->addChild(m_describeLb,2);
这个是我写一个宽度固定,自适应高度的label,仅供参考,不是很精确
— Begin quote from ____
andliy0226 发表于 2012-6-11 11:47 url
遇到楼主相同问题,关注。还没想到更好的办法。
我准备调用系统方法, 如android 用jni 调用系统 measureT …
— End quote
我目前也打算用各系统方法,然后用一个通用的接口接进来,ios需要字体的名字和大小
— Begin quote from ____
lzj 发表于 2012-6-11 11:36 url
gb2312编码下中文是占两个字节的,宽度也是英文字符的两倍,所以计算方式是一样的,符号也一样,按字节的数 …
— End quote
这个宽度和字符集有关系吗,不是只和字体相关么
— Begin quote from ____
ccwccy 发表于 2012-6-11 11:49 url
int rowCount=0;
rowCount = strlen(details)%45==0?strlen(details)/45:strlen(details)/45+1;
m_ …
— End quote
嗯 我的问题要麻烦,我需要把文字显示在不规则的区域内,
所以我必须要控制每一行的宽度来填充
嗯 其实主要不是左对齐,是要精确控制每一行的换行
做到下面这图的效果,而且效率不能太差

借问下楼主此问题有没有解决,怎么解决的,谢谢
同求解决方法