参考自http://www.cocos2d-x.org/wiki/How_does_CCLabelTTF_support_line_breaks_and_wrapping

环境:

cocos2d-x version: cocos2d-2.1rc0-x-2.1.4

函数介绍

我们要讨论的函数是:

static CCLabelTTF * create(const char *string, const char *fontName, float fontSize,const CCSize& dimensions, CCTextAlignment hAlignment);

参数:

const char *string:您将在文本中绘制的标签

const char *fontName: 字体名称

float fontSize: 字体大小

const CCSize& dimensions:你希望的标签大小

CCTextAlignment hAlignment:标签的文本水平对齐方式

返回值:返回指针类型的CCLabelTTF

标记:另一个使用了不同参数的create().

static CCLabelTTF * create(const char *string, const char *fontName, float fontSize);

如果您使用此函数,参数CCSize& dimensions的值是CCSizeZero,参数CCTextAlignment hAlignment的默认值是kCCTextAlignmentCenter。

支持换行符和换行

标签看起来像什么取决于标签内容大小,而内容的大小取决于参数const char string和const CCSize& dimensions.所以,关键是如何通过参数const char string和const CCSize& dimensions计算的标签内容大小.
我们这样子处理不同情况:

  • • 参数const CCSize& dimensions等于CCSizeZero
    1. 1. 标签内容大小自动计算的。
    2. 2.不换行,完整显示标签,。
    3. • 参数const CCSize& dimensions只指定宽度。
    4. 1. 标签宽度等于dimensions.width,标签高度将自动计算。
    5. 2.支持换行,并将完整显示标签。
    6. • 参数const CCSize& dimensions指定宽度和高度。
    7. 1. 标签内容大小等于参数CCSize& dimension.
    8. 2. 如果标签不能完全显示在指定的大小内,标签将截断不可见区域。

例子

CCLabelTTF *ttf=CCLabelTTF::create("This is a sentence longer than a line width.\nCocos2d-x", "Thonburi", 20, CCSizeMake(0, 0), kCCTextAlignmentCenter);

CCLabelTTF *ttf=CCLabelTTF::create("This is a sentence longer than a line width.\nCocos2d-x", "Thonburi", 20, CCSizeMake(200, 0), kCCTextAlignmentCenter);

CCLabelTTF *ttf=CCLabelTTF::create("This is a sentence longer than a line width.\nCocos2d-x", "Thonburi", 20, CCSizeMake(200, 43), kCCTextAlignmentCenter);

CCLabelTTF 如何支持换行符和换行的更多相关文章

  1. SQL的查询结果复制到Excel 带标题Head 有换行符导致换行错乱 的解决方案

    将SQL查询到的结果保存为excel有很多方法,其中最简单的就是直接复制粘贴了 1.带Head的复制粘贴 1)先左击红色区域实现选择所有数据 2)随后右击选择Copy with Headers  再粘 ...

  2. js 事件函数中的参数带换行符或换行标签都不能起作用的解决方法

    把问题参数值赋给标签的属性data-value,通过属性值获取参数值.

  3. SQL列中含有换行符的查找和替换方法

    最近在获取数据时,发现程序读取的字段中含有\r\n字符,检查数据库表中的数据,发现是varchar字符串中包含了换行符.导入数据导致了这一情况出现. 回车换行 不同系统的行结尾符号并不同,如下: li ...

  4. 替换换行符:回车换行CR/LF

    windows采用回车+换行CR/LF表示下一行,UNIX/Linux使用换行符LF表示下一行,MAC OS系统使用用回车符CR表示下一行. CR使用符号'\r'表示, ASCII码是13: LF使用 ...

  5. python字符串 常用函数 格式化字符串 字符串替换 制表符 换行符 删除空白 国际货币格式

    # 字符串常用函数# 转大写print('bmw'.upper()) # BMW# 转小写print('BMW'.lower()) # bmw# 首字母大写print('how aae you ?'. ...

  6. Qt5_vs2013_error_C2001: 常量中有换行符__资料

    ZC: Win7x64 + Qt551(x86) + vs2013(x86) ZC: 问题:UTF-8 在源码文件中有中文时,有时会报编译错误:C2001 & C2143 分析: --> ...

  7. sqlserver数据库 去除字段中空格,换行符,回车符(使用replace语句)

    SQL中可以使用Replace函数来对某个字段里的某些字符进行替换操作,语法如下: 语法 REPLACE ( original-string, search-string, replace-strin ...

  8. THINKPHP 清除HTML注释、换行符、空格、制表符等

    thinkphp3.2 3.2中取消了配置文件中的 'TMPL_STRIP_SPACE' 属性,所以我们先来修改:\ThinkPHP\Library\Think\Template.class.php ...

  9. SQL替换空格,制表符,换行符,回车符.

    首先是空格的替换,很重要的有点是,要确保字段的类型,不是char或nchar等固定的类型,否则无法去掉空格. 去掉空格很简单,如下为SQL实例: --去掉 T_StuffBasic 表中FBranch ...

随机推荐

  1. API:System V & POSI

    http://blog.sina.com.cn/s/blog_5b1572e30100gulz.html

  2. webstrom使用记录

    很不方便的一点: 输入 $("#div p" 之后输入",就会变成$("#div p""" 这样,很不爽.

  3. absolute和relative的几个Demo

    这些例子最好通过FireFox结合FireBug调试查看 1.absolute让元素inline-block化 <!DOCTYPE html> <html xmlns="h ...

  4. make menuconfig出错

    make[1]: *** [scripts/kconfig/mconf] Error 1 make: *** [menuconfig] Error 2 fixed: sudo apt-get inst ...

  5. 函数 flst_get_first

    /********************************************************************//** Gets list first node addre ...

  6. BZOJ_1270_雷涛的小猫_(动态规划)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1270 有n棵树,高度为h.一只猫从任意一棵树的树顶开始,每次在同一棵树上下降1,或者跳到其他树 ...

  7. openssl的CRYPTO_set_locking_callback

    openssl可以在多线程环境下使用,但前提是向openssl提供线程锁设施,通过CRYPTO_set_locking_callback设置. 在一些复杂软件环境环境中,可能存在多个上层模块同时使用o ...

  8. android之handler obtainmessge与New message区别

    obtainmessage()是从消息池中拿来一个msg 不需要另开辟空间new new需要重新申请,效率低,obtianmessage可以循环利用: //use Handler.obtainMess ...

  9. [转]ASP.NET MVC 入门3、Routing

    在一个route中,通过在大括号中放一个占位符来定义( { and } ).当解析URL的时候,符号"/"和"."被作为一个定义符来解析,而定义符之间的值则匹配 ...

  10. 【原】1.1RDD源码解读(一)

    1.RDD(Resilient Distributed DataSet)是Spark生态系统中最基本的抽象,代表不可变的.可并行操作的分区元素集合.RDD这个类有RDD系列所有基本的操作,比如map. ...