大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.

如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)


Cocos2D中默认的CCLableTTF类从源代码里看是支持多彩以及粗体之类的字符显示属性的,但可惜的是在最新的几版的cocos2D里,只能使用单色属性,否则App就会崩溃.

在Github中cocos2D的源代码里,可以看到各位大牛已经发现了这个问题,但是直到目前最新的Cocos2D 3.4.9中这个问题还未解决:

[iOS] Attributed String does not work in CCLabelTTF #1153

不过要注意的是Cocos2D 3.x早期几个版本是可以支持多彩标签的,虽然我不可能在跑去测试老的版本了.

不过我们可以用另外一种方法是标签支持多彩颜色,同样可以支持粗体和斜体,下划线之类的特殊效果.

以下是效果展示图:

核心代码如下:

//抽取并处理对话,如果已抽空所有对话则返回NO,否则返回YES.
-(BOOL)dryDialogue{
    NSString *dStr = _dAry[0];
    [_dAry removeObjectAtIndex:0];

    //如果对话不是命令则将对话内容显示在屏幕上,否则解析命令并执行.
    if (![self tryParseCmd:dStr]) {
        _dialogueBg.visible = YES;
        NSString *msg = [NSString stringWithFormat:@"%@ :%@",_npc.gcName,dStr];
        NSMutableString *mstr = [NSMutableString stringWithString:msg];
        NSArray *attrsAry = [self getStringAttrsAndTrimString:mstr];
        if (attrsAry.count > 0) {
            NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc]initWithString:mstr];
            for (NSDictionary *dict in attrsAry) {
                UIColor *color = [HyComm colorFromColorString:dict[@"Color"]];
                NSRange range = [dict[@"Range"] rangeValue];
                [attrString addAttribute:NSForegroundColorAttributeName value:color range:range];
            }
            _label.attributedText = attrString;
        }else{
            _label.text = msg;
        }
    }

    if (_dAry.count == 0) {
        return NO;
    }else{
        return YES;
    }
}

Cocos2D创建多彩文本显示标签的更多相关文章

  1. delphi Caption 垂直显示标签文本

    //垂直显示标签文本 Label1.Caption:='垂'+#13+'直'+#13+'显'+#13+'示';//使用相同的方法,我们也可以制作垂直显示的提示(Hint):button1.Hint:= ...

  2. css 溢出文本显示省略号

    这个标题其实已经是一个老生常谈的问题了.很多时候,比如网站最基本的文章列表,标题会很长,而显示列表的区域宽度却没有这么宽,这时候最正常的做法就是 让超出宽度的部分文字用省略号(…)来表示.通常做法是网 ...

  3. Oracle Sales Cloud:管理沙盒(定制化)小细节1——利用公式创建字段并显示在前端页面

    Oracle Sales Cloud(Oracle 销售云)是一套基于Oracle云端的CRM管理系统.由于 Oracle 销售云是基于 Oracle 云环境的,它与传统的管理系统相比,显著特点之一便 ...

  4. CSS 单行溢出文本显示省略号...的方法(兼容IE FF)(转)

    http://www.52css.com/article.asp?id=602 ===================================================     html ...

  5. 使用 Windows 窗体 TextBox 控件创建密码文本框

    密码框是一种 Windows 窗体文本框,它在用户键入字符串时显示占位符. 创建密码文本框 将 TextBox 控件的 PasswordChar 属性设置为某个特定字符. PasswordChar 属 ...

  6. HTML标签小记文本类标签

    文本类标签: <input type="text" name="" value="">文本框  type(方式,方法)name文 ...

  7. C# 创建txt文本

    1.创建txt文本 /// <summary> /// log日志,txt的 /// </summary> /// <param name="Log1" ...

  8. Highmaps网页图表教程之绘图区显示标签显示数据标签定位

    Highmaps网页图表教程之绘图区显示标签显示数据标签定位 Highmaps数据标签定位 由于数据标签是和节点一一对应,所以数据标签是依据节点位置进行定位的.本节详细讲解如何对数据标签进行定位. H ...

  9. Django 中文乱码问题&富文本显示

    1.起源:从后台管理添加中文对象,正常,但是再次点击编辑的时候,抛出异常,显示编码问题. 解决:在项目的manage.py 的文件头部添加  import sys  reload(sys)  sys. ...

随机推荐

  1. ●BZOJ 1797 [Ahoi2009]Mincut 最小割

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=1797 题解: 详细的讲解去看http://hzwer.com/3217.html首先跑一个最 ...

  2. bzoj 3174: [Tjoi2013]拯救小矮人

    Description 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口.对于每一个小矮人, ...

  3. 抽象方法不能是static或native或synchroniz

    abstract 是抽象了,只有声明,没有具体的实现方法 static是静态的,是一种属于类而不属于对象的方法或者属性,而我们知道,类其实也是一个对象,他是在class文件加载到虚拟机以后就会产生的对 ...

  4. Python Django系统

    本节内容 路由系统,视图函数,模板引擎,ORM操作 FBV和CBV ORM操作补充 Cookie和Session Ajax入门 1.  Django基本内容整理 1.1 路由系统 Django中路由系 ...

  5. python中没有字符(char)这一基本数据类型

    感觉受C语言的影响太大了,一开始以为python中也会有字符这一基本数据类型,后来遇到了很多问题,这才发现python中压根没有这一数据类型( ╯□╰ ). 吐槽一下:感觉python还真是'够简单啊 ...

  6. 《cocos2d-x游戏开发之旅》问题2016-10-7

    今天按书上做,遇到问题卡住了 书P115 项目是 littlerunner

  7. windows平台下cocos2d-x-3.0beta2创建新项目

    我目前使用的版本是cocos2d-x-3.0beta2 前提: 已安装了python2.7.3 已安装了VS2012 打开我的cocos2d-x-3.0beta2所在文件夹F:\Framework\c ...

  8. Linux学习之CentOS(十八)-----恢复Ext3下被删除的文件与 使用grep恢复被删文件内容(转)

    前言 下面是这个教程将教你如何在Ext3的文件系统中恢复被rm掉的文件. 删除文件 假设我们有一个文件名叫 'test.txt' $ls -il test.txt 15 -rw-rw-r– 2 roo ...

  9. npm ERR! Windows_NT 10.0.10586

    安装vue脚手架时候一直失败,如图: npm cache clean 管理员下安装: 快捷键 win +x , 按A进入:

  10. Arrays的二分查找

    二分查找也称为折半查找,是对有序元素查找的一种算法,在查找的过程中,不断的将搜索长度减半,因此效率不错.Java的JDK提供了二分法查找的算法,使用的方法是Arrays.binarySearch(). ...