cocos富文本里检测换行,是通过
while (std::getline(ss, currentText, '\n'))
检测\n字符,把文本分段,每有一段新的文本就会开启新行。而不是检测到\n就会开新行。
这里可能会有个问题,就是如果文本最后一个字符是\n(例如策划配的表,要求最后换行)。实际上是无法换行的。
所以需要在整个文本检测的最后,加个末尾的\n换行检测。
在while循环结束后的代码加一段
int sl = ss.str().length();
if (sl > 1 && ss.str()[sl - 1] == '\n') {
addNewLine();
_lineHeights.back() = fontSize;
}