CCLabelTTF 显示不全
来源:互联网 发布:卡戴珊跟希尔顿比知乎 编辑:程序博客网 时间:2024/04/28 22:40
cocos2d版本:quick 2.2.6
测试字符串:abcd\n\n\nefg\n\n\nhijk
结果:如图hijk几个字母没有显示出来。
原因:是因为cocos2d计算文字高度的时候把文字以\n分割开来,然后计算每段文字在高度,如果\n\n连接起就行形成一个空字符,导致计算高度变小,所以在显示文字的时候hijk没有显示出来。
解决方法:修改这个方法计算文字高度,红色的是修改的。
CGSize tmp;
if (s.length == 0) {
tmp = [@"\n" sizeWithFont:font constrainedToSize:textRect];
}else{
tmp = [s sizeWithFont:font constrainedToSize:textRect];
}
static CGSize _calculateStringSize(NSString *str, id font, CGSize *constrainSize){ NSArray *listItems = [str componentsSeparatedByString: @"\n"]; CGSize dim = CGSizeZero; CGSize textRect = CGSizeZero; textRect.width = constrainSize->width > 0 ? constrainSize->width : 0x7fffffff; textRect.height = constrainSize->height > 0 ? constrainSize->height : 0x7fffffff; for (NSString *s in listItems) {CGSize tmp; if (s.length == 0) { tmp = [@"\n" sizeWithFont:font constrainedToSize:textRect]; }else{ tmp = [s sizeWithFont:font constrainedToSize:textRect]; } if (tmp.width > dim.width) { dim.width = tmp.width; } dim.height += tmp.height; } dim.width = ceilf(dim.width); dim.height = ceilf(dim.height); return dim;}
修改后结果:现在已是凌晨两点收工。。。。。。。
0 0
- CCLabelTTF 显示不全
- 关于Quick-cocos2dx 2.2.6中CCLabelTTF文字在ios或ipad中显示不全的问题
- 文本显示之CCLabelTTF
- IOS7下CCLabelTTF不显示
- cocos2dx CCLabelTTF显示中文乱码
- CCLabelTTF上的字体居中显示
- CCLabelTTF和CCLabelAtlas的显示区别
- cclabelttf字体不显示的解决办法
- coco2d-x CCLabelTTF显示中文乱码
- cocos2dx显示CCLabelTTF的指定宽度
- firefox 图片显示不全
- qvfb界面显示不全
- Extjs日期显示不全
- RatingBar显示不全
- xdebug显示不全
- iReport内容显示不全
- 任务管理器显示不全
- listview显示不全问题
- yii1.x学习笔记(4)好用的数据库操作
- IOS开发之—程序截图
- ZOJ 3326 An Awful Problem
- #define与sizeof详解
- 未初始化指针作为实参的两种错误总结
- CCLabelTTF 显示不全
- Insert Interval
- 一个不错的shell 脚本教程 入门级
- shell脚本基础
- 在Linux系统下安装配置memcached的方法
- Android自定义组件---《找呀找呀找工作》
- ThinkPHP中自定义目录结构
- Linux操作系统安全配置步骤
- iconv Linux下编码转换