这个问题论坛里提问的不少,但是官方没有回复。这个功能是很有必要的。
你试试吧,如果是设定宽度自适应高度的话,我在3.10上可以正确拿到richtext的高度
richText:setContentSize(cc.size(width, 0)) richText:ignoreContentAdaptWithSize(false) richText:formatText() richText:setAnchorPoint(cc.p(0,0)) richText:setContentSize(cc.size(width, richText:getContentSize().height)) richText:setPosition(cc.p(0,richText:getContentSize().height))
不行的~~, 现在用3.16 都不行。
看来得自己fork自己改了
1赞
改完向主仓库提个 PR,这样后续每个人都能用你的代码解决这个问题了,开源的优势
有什么妙招么? clone 实在太慢 几十k。 改host的也一样
仔细看了一下 PR 的历史,这个问题已经被修复了,被标记的 3.17 版本。 https://github.com/cocos2d/cocos2d-x/pull/18447 @yoohoow @wanpylgw
引用 PR 的描述
改进RichText
自动修正ContentSize,以获得真实高度 #12806 #12145 #15054
许多论坛反馈RichText无法获取真实高度。我在函数RichText::formatRenderers里面修改了_customSize.height,使得content size等于真实尺寸。
用StringUtils::StringUTF8重构了字符串切割算法
对同一段文本重复调用Helper::getSubStringOfUTF8String比较浪费性能。而StringUtils::StringUTF只转换一次。
另一方面,切割StringUtils::StringUTF8比用Helper::getSubStringOfUTF8String切割要容易得多,且不容易出错。#18323
在函数getNextWordPos里面增加了估算长度,使之执行得更快。
对文本中的\n处理为换行。并支持连续的\n #14188