将自定义字体应用于从HTML字符串转换的归因字符串

将自定义字体应用于从HTML字符串转换的归因字符串,第1张

概述我使用UITextView,其中我显示NSAttributedString.我从服务器获取 HTML字符串.我使用以下代码将 HTML转换为NSAttributedString. NSMutableAttributedString *attrib = [[NSMutableAttributedString alloc]initWithData:[strHTML dataUsingEncoding: 我使用UITextVIEw,其中我显示NSAttributedString.我从服务器获取 HTML字符串.我使用以下代码将 HTML转换为NSAttributedString.
NSMutableAttributedString *attrib = [[NSMutableAttributedString alloc]initWithData:[strHTML dataUsingEnCoding:NSUTF8StringEnCoding] options:@{NSdocumentTypedocumentAttribute: NSHTMLTextdocumentType,NSCharacterEnCodingdocumentAttribute: @(NSUTF8StringEnCoding)} documentAttributes:nil error:nil];

要申请字体,我尝试下面2个代码.

>应用属性
>自定义字符串

要应用属性我使用下面的代码.

[attrib addAttribute:NSFontAttributename          value:myFont          range:NSMakeRange(0,attrib.length)];

对于自定义字符串,我先创建Nsstring下面,然后在NSAttributedString中隐藏

Nsstring *strHTML = [Nsstring stringWithFormat:@"<span style=\"Font-family: myFont; Font-size: 12\">%@</span>",@"my string"];

使用两个代码字体更改成功.但是不应用粗体和斜体下划线在NSAttributedString中应用.

我参考以下链接.

> iOS 7 using an HTML string as an NSAttributedString AND setting the font?
> ios7 font size change when create nsattributedstring from html
> How to add CSS of an html to NSAttributedString?

对于链接3,我应该从服务器端应用字体和标签,然后检索HTML字符串?

任何帮助将被贴上!!!

解决方法 最后我得到了答案.您可以检查拉姆答案( Find attributes from attributed string that user typed),或者您可以简单地删除旧的字体属性,并使用以下代码应用新的字体.
NSDictionary *dictAttrib = @{NSdocumentTypedocumentAttribute: NSHTMLTextdocumentType,NSCharacterEnCodingdocumentAttribute: @(NSUTF8StringEnCoding)}; NSMutableAttributedString *attrib = [[NSMutableAttributedString alloc]initWithData:[yourHTMLString dataUsingEnCoding:NSUTF8StringEnCoding] options:dictAttrib documentAttributes:nil error:nil]; [attrib beginEditing];        [attrib enumerateAttribute:NSFontAttributename inRange:NSMakeRange(0,attrib.length) options:0 usingBlock:^(ID value,NSRange range,BOol *stop) {            if (value) {                UIFont *oldFont = (UIFont *)value;                NSLog(@"%@",oldFont.Fontname);                /*----- Remove old Font attribute -----*/                [attrib removeAttribute:NSFontAttributename range:range];                //replace your Font with new.                /*----- Add new Font attribute -----*/                if ([oldFont.Fontname isEqualToString:@"TimesNewRomanPSMT"])                    [attrib addAttribute:NSFontAttributename value:Font1 range:range];                else if([oldFont.Fontname isEqualToString:@"TimesNewRomanPS-BoldMT"])                    [attrib addAttribute:NSFontAttributename value:Font2 range:range];                else if([oldFont.Fontname isEqualToString:@"TimesNewRomanPS-ItalicMT"])                    [attrib addAttribute:NSFontAttributename value:Font3 range:range];                else if([oldFont.Fontname isEqualToString:@"TimesNewRomanPS-BoldItalicMT"])                    [attrib addAttribute:NSFontAttributename value:Font4 range:range];                else                    [attrib addAttribute:NSFontAttributename value:Font5 range:range];            }        }];[attrib endEditing];

谢谢.也许会帮助你

总结

以上是内存溢出为你收集整理的将自定义字体应用于从HTML字符串转换的归因字符串全部内容,希望文章能够帮你解决将自定义字体应用于从HTML字符串转换的归因字符串所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1145080.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存