Cocos2D创建多彩文本显示标签

Cocos2D创建多彩文本显示标签,第1张

概述大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) Cocos2D中默认的CCLableTTF类从源代码里看是支持多彩以及粗体之类的字符显示属性的,但可惜的是在最新的几版的cocos2D里,只能使用单色属性,否则App就会崩溃. 在Github中cocos2D的源代码里,可以看到各位大牛已经发现了这个问题,但是直

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! 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创建多彩文本显示标签全部内容,希望文章能够帮你解决Cocos2D创建多彩文本显示标签所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1076644.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存