iOS富文本为html时,修改默认字体颜色

有如下这样的html

<span style="color:'#F62637', background-color:'#FFFFFF'">颜色样式</span>无样式

你想要在label控件上,通过富文本方式进行显示,而label的textColor为白色,这时候,你希望“无样式”的字体颜色为白色的。但是富文本没有设置ForgroundColor的情况下,字体颜色默认为黑色的。而且forgroundColor和label的textColor的设置是处于同一个水平的,你后设置的那个总是会覆盖掉先设置的那个。所以这样就导致了一个问题“无样式”字体的颜色不会显示白色,而是黑色的。

如果html是确定的,那么可以考虑通过便利的方式进行实现。对于不确定的html,一个很好的思路是想办法修改富文本的默认字体颜色。我的第一个想法就是从NSAttributedString的属性入手,可是找了半天都没有找到办法来。还有一个比较笨的办法就是通过NSAttributedString的遍历方法去找color为黑色(默认颜色)的字符串,但是这个方法有一个问题,如下html

<span style="color:black">黑色样式</span>无样式

本身的html设置的字体颜色为黑色的时候,遍历的方法就会变得很尴尬。

想了半天还是没有解决,灵感一闪,oc解决不了,那么就从html入手吧,直接拼接html,在最外面加个span。 如下所示:

<span style="color: your color here"><span style="color:black">黑色样式</span>无样式</span>

这样就直接实现了改变NSAttributedString的默认字体颜色的问题了,哈哈哈。

有更好的办法,欢迎指教哈~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容