有如下這樣的html
<span style="color:'#F62637', background-color:'#FFFFFF'">顏色樣式</span>無樣式
你想要在label控件上,通過富文本方式進(jìn)行顯示,而label的textColor為白色,這時候,你希望“無樣式”的字體顏色為白色的。但是富文本沒有設(shè)置ForgroundColor的情況下,字體顏色默認(rèn)為黑色的。而且forgroundColor和label的textColor的設(shè)置是處于同一個水平的,你后設(shè)置的那個總是會覆蓋掉先設(shè)置的那個。所以這樣就導(dǎo)致了一個問題“無樣式”字體的顏色不會顯示白色,而是黑色的。
如果html是確定的,那么可以考慮通過便利的方式進(jìn)行實(shí)現(xiàn)。對于不確定的html,一個很好的思路是想辦法修改富文本的默認(rèn)字體顏色。我的第一個想法就是從NSAttributedString的屬性入手,可是找了半天都沒有找到辦法來。還有一個比較笨的辦法就是通過NSAttributedString的遍歷方法去找color為黑色(默認(rèn)顏色)的字符串,但是這個方法有一個問題,如下html
<span style="color:black">黑色樣式</span>無樣式
本身的html設(shè)置的字體顏色為黑色的時候,遍歷的方法就會變得很尷尬。
想了半天還是沒有解決,靈感一閃,oc解決不了,那么就從html入手吧,直接拼接html,在最外面加個span。 如下所示:
<span style="color: your color here"><span style="color:black">黑色樣式</span>無樣式</span>
這樣就直接實(shí)現(xiàn)了改變NSAttributedString的默認(rèn)字體顏色的問題了,哈哈哈。
有更好的辦法,歡迎指教哈~