Cocos2D创建多彩文本显示标签
2016-01-19 11:05
330 查看
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)
Cocos2D中默认的CCLableTTF类从源代码里看是支持多彩以及粗体之类的字符显示属性的,但可惜的是在最新的几版的cocos2D里,只能使用单色属性,否则App就会崩溃.
在Github中cocos2D的源代码里,可以看到各位大牛已经发现了这个问题,但是直到目前最新的Cocos2D 3.4.9中这个问题还未解决:
[iOS] Attributed String does not work in CCLabelTTF #1153
不过要注意的是Cocos2D 3.x早期几个版本是可以支持多彩标签的,虽然我不可能在跑去测试老的版本了.
不过我们可以用另外一种方法是标签支持多彩颜色,同样可以支持粗体和斜体,下划线之类的特殊效果.
以下是效果展示图:
核心代码如下:
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)
Cocos2D中默认的CCLableTTF类从源代码里看是支持多彩以及粗体之类的字符显示属性的,但可惜的是在最新的几版的cocos2D里,只能使用单色属性,否则App就会崩溃.
在Github中cocos2D的源代码里,可以看到各位大牛已经发现了这个问题,但是直到目前最新的Cocos2D 3.4.9中这个问题还未解决:
[iOS] Attributed String does not work in CCLabelTTF #1153
不过要注意的是Cocos2D 3.x早期几个版本是可以支持多彩标签的,虽然我不可能在跑去测试老的版本了.
不过我们可以用另外一种方法是标签支持多彩颜色,同样可以支持粗体和斜体,下划线之类的特殊效果.
以下是效果展示图:
核心代码如下:
[code]//抽取并处理对话,如果已抽空所有对话则返回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; } }
相关文章推荐
- 给节点设置tag【从零開始cocos3.0final 】
- Cocos2d-x v3.x 的事件派发机制(消息处理机制CCNotificationCenter)
- cocos2dx2.0 帧动画的创建和播放过程 深入分析
- cocos2dx中ClippingNode实现带边框圆形头像
- cocos2d-x安卓调试 android.content.res.Resources$NotFoundException: String resource ID #0x0
- Cocos2d-x 学习(1)—— 通过Cocos Studio创建第一个Demo
- CCTMXTiledMap中使用.tmx地图编辑器需要注意的路径问题导致的热更后报错
- Flash动画导出到Cocos Studio动作编辑器
- Cocos2d-x 脚本语言Lua中的面向对象
- 已解决的问题————"struct cocos2d::Color3B const cocos2d::ccRED"
- cocos2dx中IOS/Android跨平台微信登录和分享
- cocos2d-x中ScrollView内的元素位置问题
- Cocos2d-JS引入其他场景小实例
- cocos2d-x bindings-generator(lua调用c++)
- 菜鸟学习Cocos2d-x 3.x——浅谈动作Action
- Cocos studio初使用(二)
- cocos3.7物理引擎基本使用
- cocos2d-x使用tinyxml2解析&存储xml
- Cocos2d-JS替换初始化场景
- Cocos2d-x 的3D游戏制作官方教程(中文翻译)