当前位置: 首页 > 面试题库 >

将HTML解析为NSAttributedText-如何设置字体?

闻人嘉悦
2023-03-14
问题内容

我正在尝试获取以html格式格式化的文本片段,以在UITableViewCell中的iPhone上很好地显示。

到目前为止,我有这个:

NSError* error;
NSString* source = @"<strong>Nice</strong> try, Phil";
NSMutableAttributedString* str = [[NSMutableAttributedString alloc] initWithData:[source dataUsingEncoding:NSUTF8StringEncoding]
                                                           options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,
                                                                     NSCharacterEncodingDocumentAttribute: [NSNumber numberWithInt:NSUTF8StringEncoding]}
                                                              documentAttributes:nil error:&error];

这种作品。我得到一些加粗的“ Nice”文字!但是…它还将字体设置为Times
Roman!这不是我想要的字体。我想我需要在documentAttributes中设置一些内容,但是,我在任何地方都找不到任何示例。


问题答案:

弄清楚了。有点负担,也许不是最佳答案。

此代码将经历所有字体更改。我知道它使用的字体为“ Times New Roman”和“ Times New Roman
BoldMT”。但是无论如何,这都会找到粗体并让我重置它们。我也可以在设置时重置大小。

老实说,我希望/认为有一种方法可以在解析时进行设置,但是如果有的话,我找不到它。

    NSRange range = (NSRange){0,[str length]};
    [str enumerateAttribute:NSFontAttributeName inRange:range options:NSAttributedStringEnumerationLongestEffectiveRangeNotRequired usingBlock:^(id value, NSRange range, BOOL *stop) {
        UIFont* currentFont = value;
        UIFont *replacementFont = nil;

        if ([currentFont.fontName rangeOfString:@"bold" options:NSCaseInsensitiveSearch].location != NSNotFound) {
            replacementFont = [UIFont fontWithName:@"HelveticaNeue-CondensedBold" size:25.0f];
        } else {
            replacementFont = [UIFont fontWithName:@"HelveticaNeue-Thin" size:25.0f];
        }

        [str addAttribute:NSFontAttributeName value:replacementFont range:range];
    }];


 类似资料:
  • 问题内容: 下面的程序显示了HTML多部分mime类型的意外返回值。为什么该程序打印“文本/纯文本”而不​​是“文本/ html”? 我尝试了许多其他方法,包括设置包装在DataHandler中的ByteArrayDataSource,但无济于事。当我使用MimeMessage而不是MimeBodyPart尝试此操作时,会发生相同的事情。 要在Linux上编译并运行: 问题答案: 调用封闭的消息,

  • 问题内容: 如果我们将Apache Web服务器设置为将Apache配置为将 所有 HTML 处理为PHP,是否存在安全性/性能方面的顾虑?我专门指的是: 我当时需要将一些PHP逻辑添加到一些HTML文件中;理想情况下,我不必将文件名更改为(保持的页面排名等)。 这与以下问题有关:httpd AddType指令 编辑: 从下面的现有答案/评论中,社区似乎建议使用重定向或仅针对特定的HTML文件。约

  • 问题内容: 我试图解析一个字符串,以分隔字符串中的列表。我目前有字符串: 有什么方法可以解析字符串,以便字典键是列表的第一个元素,而键的值是元素的下一个。例如: 问题答案: insted的的,你可以有列表: 您可以使用从字符串解析Python数据结构

  • 问题内容: 我必须在我的网站上找到一张桌子。并且必须从“” 获取此表的数据,我已经尝试了很多方法,但是没有用。 .. 问题答案: 从外部来源获取数据时,要做的第一件事就是了解所返回的内容。 也是 结果: 因此,现在您知道您要处理的是对象,而不是标量值或数组。 因此,请尝试以下代码:-

  • 问题内容: 我有这个字符串:10,692,467,440,017.120(是一个数字)。 我想将其解析为BigDecimal。问题是我没有尝试过DecimalFormat和NumbeFormat。有什么帮助吗? 问题答案: 试试这个 如果要构建具有I18N支持的应用程序,则应使用 还请记住,它可能会引发a,因此您需要处理它(使用try / catch)或引发它,然后让程序的另一部分处理它

  • 问题内容: 我有一个弦 然后,我想将其解析为sqlDate。并将其插入数据库。 是否可以将该字符串解析为sqlDate?!?! 是的,SQL日期格式为“ yyyy-mm-dd” 问题答案: 用于将String日期解析为java.util.Date 然后使用millis将其转换为java.sql.Date