NGUI中UILabel使用url标签的一个bug

在NGUI3.5.9版本中,修复了UILabel中支持的URL链接功能在文本内多次使用时导致内容全错的问题。通过修改ParseSymbol函数中的代码解决了此BUG。建议使用更强大的HTMLEngineforNGUI插件来替代基本的标签功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在NGUI里,UILabel控件可以支持一些简单功能的标签,使文本显示更丰富及实现类似超链接的功能。但是在使用的时候发现了NGUI3.5.9版本里存在着一个bug。不过还好修复这个bug也很简单。

在UILabel中支持[url=link]text[/url]的方式来定义类超链接的文本。bug就出现在同一个UILabel里使用两个及以上这种标签时,最终显示的label内容就会全错掉。

  text内容:[url=a]a[/url][url=

当再输入任一字符后,label的内容就全消失了。

bug修复:在NGUIText类中,有一个函数ParseSymbol,这个函数里对文本中定义的标签进行识别(个人感觉写得太难看了,一个字,丑陋)。这函数里找到对url标签的匹配,将其中的

//int closingBracket = text.IndexOf(']');
//替换修复为
int closingBracket = text.IndexOf(']', index+4);

 原因就是在寻找‘]’字符时的开始位置错误。这样子就解决问题了。

ps: 其实NGUI的这个功能还是挺鸡肋的,还不如去用html engine for ngui插件,用标准的html标签

ps2: 在看了那段ParseSymbol代码后,深深地想起在学校里教的语法解析,只依稀记得状态机,其他的都忘记了。。。

转载于:https://www.cnblogs.com/bicker/p/3741791.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值