NGUI中UILabel使用url標簽的一個bug


在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代碼后,深深地想起在學校里教的語法解析,只依稀記得狀態機,其他的都忘記了。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM