我尝试在UILabel中显示HTML,例如
NSString * htmlString = @"Some html string \n <font size=\"13\" color=\"red\">This is some text!</font>";
NSAttributedString * attrStr = [[NSAttributedString alloc] initWithData:[htmlString dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];
现在我得到一个attributedString
attrStr打印说明:一些html字符串
{
...
NSFont = "<UICTFont: 0x7f8240d7c310> font-family: \"Times New Roman\"; font-weight: normal; font-style: normal; **font-size: 12.00pt**";
}
这是一些文字!
{
...
NSFont = "<UICTFont: 0x7f8240d7aff0> font-family: \"Times New Roman\"; font-weight: normal; font-style: normal; **font-size: 37.00pt**";
}
似乎字体大小:12.00pt是默认大小,我想在不修改HTML源代码的情况下修改大小。怎么做?
4条答案
按热度按时间xtfmy6hx1#
你可以通过一点编码来完成它...你需要遍历属性,并改变属性化字符串的每一段的字体大小(如正常、斜体、粗体等)。
你可以这样使用它
oogrdqng2#
下面是@Maria的NSMutableAttributedString扩展名在Swift 5.1中的重写
kcwpcxri3#
这是我的版本,支持文本样式(正文、标题等)、文本对齐,可直接在
UILabel
中使用:UILabel
扩展:String
扩展:和
NSMutableAttributedString
扩展名:用途:
我希望这能帮上忙,
哈维
bvk5enib4#
目标语言-C
在我的情况下,我只需要使默认字体变大。所以有解决方案。
如果你需要改变字体,这将是困难的,因为你需要新的字体,以支持所有
traitsCollection
的默认字体。你可以尝试玩行UIFontDescriptor* fontDescriptor = [oldFont.fontDescriptor fontDescriptorWithSymbolicTraits:oldFont.fontDescriptor.symbolicTraits];
。使一个新的UIFontDescriptor
的新字体,并创建字体与此描述符和特点的旧字体。在我的情况下,新字体是零,因为我没有所有必要的特点,为新字体。如粗体,斜体和等宽变体。