Cocos2D创建多彩文本显示标签
发布时间:2020-12-14 16:51:10 所属栏目:百科 来源:网络整理
导读:大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) Cocos2D中默认的CCLableTTF类从源代码里看是支持多彩以及粗体之类的字符显示属性的,但可惜的是在最新的几版的cocos2D里,只能
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;
}
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |