gpt4 book ai didi

ios - 如何为 NSAttributedString 设置默认字体

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:11:48 28 4
gpt4 key购买 nike

根据 apple 的文档,如果您没有为给定范围的属性字符串提供任何字体,默认情况下它将采用 12 号的 Helvetica 字体。

现在我想更改默认字体。谁能建议我该怎么做。

其实我想实现以下目标:

我有带有 html 的字符串(来自服务器的动态 html),假设它是 htmlStr。在此字符串中,可能已为 html 的不同部分设置了字体,也可能没有为该 htmlStr 设置任何字体。

现在,因为我想显示+编辑此 htmlStr,所以首先我将此 htmlStr 转换为 attributedString,然后通过为 textview 设置 attributedText 将其显示在 textview 中。

现在我的问题是,如果没有为这个 htmlStr 提供任何字体,它会采用默认字体,该字体太小而且看起来不太好。那么,如何更改属性字符串的默认字体。

最佳答案

尝试

目标 - C

__block BOOL found = NO;
NSMutableAttributedString *attrString = ...
[attrString beginEditing];
[attrString enumerateAttribute:NSFontAttributeName inRange:NSMakeRange(0, attrString.length) options:0 usingBlock:^(id value, NSRange range, BOOL *stop) {
if (value) {
UIFont *oldFont = (UIFont *)value;
UIFont *newFont = [oldFont fontWithSize:oldFont.pointSize * 2];
[attrString addAttribute:NSFontAttributeName value:newFont range:range];
found = YES;
}
}];
if (!found) {
// No font was found - do something else?
}
[attrString endEditing];

swift 4

var found = false
var attrString = NSMutableAttributedString()

attributedText.enumerateAttribute(NSAttributedStringKey.font, in: NSMakeRange(0, attributedText.length), options: NSAttributedString.EnumerationOptions(rawValue: 0)) { (value, range, stop) in
if let oldFont = value as? UIFont {
let newFont = oldFont.withSize(oldFont.pointSize * 2)
attributedText.addAttribute(NSAttributedStringKey.font, value: newFont, range: range)
found = true
}
}

if !found {
// No font was found - do something else?
}

attributedText.endEditing()

关于ios - 如何为 NSAttributedString 设置默认字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44519638/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com