iOS 富文本编辑器
2018-05-29 本文已影响48人
honey缘木鱼
之前项目是用H5写的编辑器,效果不好,想着用原生自己好操作些,百度搜索一下,发现ZSSRichTextEditor很好用。
项目需求就是类似于实现富文本功能,可以换行,左右对齐,修改字体颜色等,选择这个的原因不光因为它可以实现以上功能,他还可以把输入好的文字转换成html。
但是ZSSRichTextEditor不能修改字体,中文输入可以,英文却不可以,查看代码:
case ZSSFontFamilyPalatino:
fontFamilyString = @"Palatino Linotype, Book Antiqua, Palatino, serif";
break;
因为demo里的字体不支持中文,就自动显示默认了...
改成:
case ZSSFontFamilyPalatino:
fontFamilyString = @"STHeitiSC-Light";
break;
最后github源码地址:https://github.com/nnhubbard/ZSSRichTextEditor
2.在这里拿到的html标签label如何显示呢?
直接上代码如下:
NSString *htmlString =self.model.buyKnow;
NSAttributedString *attrStr = [[NSAttributedString alloc]initWithData:[htmlString dataUsingEncoding:NSUnicodeStringEncoding] options:@{NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType}
documentAttributes:nil error:nil];
_buyRuleLabel.numberOfLines = 0;
[_buyRuleLabel setAttributedText:attrStr];
CGFloat h = [_buyRuleLabel sizeThatFits:CGSizeMake(kScreenWidth-50,CGFLOAT_MAX)].height;
_buyRuleLabel.frame = CGRectMake(10,
10,
WindowWith-20,
h+20);
_buyRuleLabel.font = [UIFont systemFontOfSize:titleFont];
_buyRuleLabel.textColor = titleColor;
我的项目中需要在拿到标签后,颜色,字体为显示做改变,我一直改变的是富文本希望在此基础上实现。
NSDictionary *optoins=@{NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType,
NSFontAttributeName:[UIFont systemFontOfSize:30],NSForegroundColorAttributeName:[UIColor whiteColor]};
但是,没有任何的用,于是我的实现方法是在后面又重新加上 :
_buyRuleLabel.font = [UIFont systemFontOfSize:titleFont];
_buyRuleLabel.textColor = titleColor;
另一种办法是一网友说:直接从 html入手,直接拼接html,在最外面加个span。
如下图:
原标签为:
<span style="color:black">黑色样式</span>无样式</span>
更改后的标签:
<span style="color: your color here"><span style="color:black">黑色样式</span>无样式</span>
这样就直接实现了改变NSAttributedString的默认字体颜色的问题了!
有更好的办法,欢迎指教哈~