Cocos2d-x   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Cocos2D-X下,iOS设备显示多行文字显示不全的问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

iOS下,如果文字中包含多个“\n”,而且是ignoreContentSize模式的话,会出现一个离奇的bug,就是会显示不全。例如如下文字:

用于把弓箭\n兵进阶为弩\n兵。
\n\n一种利用机械力量射\n箭的弓,减少士兵力量消\n耗。

最终显示效果会变成:

用于把弓箭兵进阶为弩兵。


一种利用机械力量射箭的弓,减少士兵力量消

其中的「耗。」就无端端被吃了,扒了一下源码,发现问题出在CCDevice.mm身上。_calculateStringSize这个函数在计算高度的时候,出了问题。(我很好奇,iOS下没雅黑,它的UIFont怎么可创建的……)只要修改一下_calculateStringSize这个函数,就能修复这个bug了。代码如下:

static CGSize _calculateStringSize(NSString *str,id font,CGSize *consTrainSizE)
{
    CGSize dim = CGSizeZero;
    CGSize textRect = CGSizeZero;
    textRect.width = consTrainSize->width > 0 ? consTrainSize->width
    : 0x7fffffff;
    textRect.height = consTrainSize->height > 0 ? consTrainSize->height
    : 0x7fffffff;
    
    CGSize tmpReCal =  [str sizeWithFont:font consTrainedToSize:textRect];
    dim.width = ceilf(tmpReCal.width);
    dim.height = ceilf(tmpReCal.height);
    
    return dim;
}

大佬总结

以上是大佬教程为你收集整理的Cocos2D-X下,iOS设备显示多行文字显示不全的问题全部内容,希望文章能够帮你解决Cocos2D-X下,iOS设备显示多行文字显示不全的问题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。