CCLabelTTF 如何支持换行符和换行
参考自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. 标签内容大小自动计算的。
- 2.不换行,完整显示标签,。
- • 参数const CCSize& dimensions只指定宽度。
- 1. 标签宽度等于dimensions.width,标签高度将自动计算。
- 2.支持换行,并将完整显示标签。
- • 参数const CCSize& dimensions指定宽度和高度。
- 1. 标签内容大小等于参数CCSize& dimension.
- 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 如何支持换行符和换行的更多相关文章
- SQL的查询结果复制到Excel 带标题Head 有换行符导致换行错乱 的解决方案
将SQL查询到的结果保存为excel有很多方法,其中最简单的就是直接复制粘贴了 1.带Head的复制粘贴 1)先左击红色区域实现选择所有数据 2)随后右击选择Copy with Headers 再粘 ...
- js 事件函数中的参数带换行符或换行标签都不能起作用的解决方法
把问题参数值赋给标签的属性data-value,通过属性值获取参数值.
- SQL列中含有换行符的查找和替换方法
最近在获取数据时,发现程序读取的字段中含有\r\n字符,检查数据库表中的数据,发现是varchar字符串中包含了换行符.导入数据导致了这一情况出现. 回车换行 不同系统的行结尾符号并不同,如下: li ...
- 替换换行符:回车换行CR/LF
windows采用回车+换行CR/LF表示下一行,UNIX/Linux使用换行符LF表示下一行,MAC OS系统使用用回车符CR表示下一行. CR使用符号'\r'表示, ASCII码是13: LF使用 ...
- python字符串 常用函数 格式化字符串 字符串替换 制表符 换行符 删除空白 国际货币格式
# 字符串常用函数# 转大写print('bmw'.upper()) # BMW# 转小写print('BMW'.lower()) # bmw# 首字母大写print('how aae you ?'. ...
- Qt5_vs2013_error_C2001: 常量中有换行符__资料
ZC: Win7x64 + Qt551(x86) + vs2013(x86) ZC: 问题:UTF-8 在源码文件中有中文时,有时会报编译错误:C2001 & C2143 分析: --> ...
- sqlserver数据库 去除字段中空格,换行符,回车符(使用replace语句)
SQL中可以使用Replace函数来对某个字段里的某些字符进行替换操作,语法如下: 语法 REPLACE ( original-string, search-string, replace-strin ...
- THINKPHP 清除HTML注释、换行符、空格、制表符等
thinkphp3.2 3.2中取消了配置文件中的 'TMPL_STRIP_SPACE' 属性,所以我们先来修改:\ThinkPHP\Library\Think\Template.class.php ...
- SQL替换空格,制表符,换行符,回车符.
首先是空格的替换,很重要的有点是,要确保字段的类型,不是char或nchar等固定的类型,否则无法去掉空格. 去掉空格很简单,如下为SQL实例: --去掉 T_StuffBasic 表中FBranch ...
随机推荐
- RUST叫系统编程语言,而GO是网络编程语言
用GO你必须要搞清楚一点,GO不是面向CPU密集计算的,而是面向IO密集计算的!!!RUST才是面向CPU密集计算的语言,所以RUST叫系统编程语言,而GO是网络编程语言.GO跟JAVA的Spring ...
- BMS 项目过程中遇到的问题
环境搭建的问题 Git的ssh私人密钥问题, 路劲不正确的话使用ssh方式连接github进行远程push或clone会出现需要输入密码而怎么输入都不正确的情况,这个时候使用下面的办法: http方面 ...
- (Deep) Neural Networks (Deep Learning) , NLP and Text Mining
(Deep) Neural Networks (Deep Learning) , NLP and Text Mining 最近翻了一下关于Deep Learning 或者 普通的Neural Netw ...
- poj1947Rebuilding Roads(树形DP)
链接 刚接触 树上背包..有点抽象化 找好父亲和儿子的关系 及状态转移方程 代码里有详细的注释 就不解释了 #include <iostream> #include<cstdio& ...
- MVC——母版与分部
背景: 母版是因为有一些网站里的很多网页都是采用相同的布局,所以只需要写一个母版,然后在母版该写不同模板的地方加上@RenderBody(),然后创建不同模块的时候只需要创建视图,然后选择母版就可以了 ...
- bzoj1046
首先这肯定是一道LIS的变形,这次求的是方案,还要求字典序最小 (注意这个字典序最小是指下标最小而不是数最小) 首先预处理以每个数为首,能组成多长的上升序列(这里我们用单调队列解决) 然后按照位置顺序 ...
- Cookie的前后台应用
1.jquery.cookie.js的基本应用 这个是第三方js插件,可以更方便的设置和使用cookie $.cookie("UserName", "kingtiger& ...
- BZOJ_3527_[ZJOI2014]_力_(FFT+卷积)
描述 题面: http://wenku.baidu.com/link?url=D2ORnA9xjgSxa2GlYLB7gGiYgBcXsy-Aw0kVYTjTE-iYhH1s7h8xXGmnaMwl3 ...
- Google Chrome中的高性能网络(一)
以下内容是"The Performance of Open Source Applications" (POSA)的草稿, 也是The Architecture of Open S ...
- 在Eclipse中使用Github(EGit)
安装配置EGit 1. 安装Windows版的Git,登陆Github账号,登陆成功后会自动在本地和Github配置好密钥 2. 在Eclipse中安装EGit,地址http://download.e ...