gpt4 book ai didi

swift - attributedString 的字体大小不变

转载 作者:行者123 更新时间:2023-11-28 11:30:50 24 4
gpt4 key购买 nike

我有一个 attributedString 并且只想更改它的字体大小。为此,我使用了在 StackOverflow 上找到的另一种方法。在大多数情况下,这是有效的,但在某种情况下,它不会以某种方式改变整个 attributedString

改变大小的方法:

/**
*A struct with static methods that can be useful for your GUI
*/
struct GuiUtils {

static func setAttributedStringToSize(attributedString: NSAttributedString, size: CGFloat) -> NSMutableAttributedString {
let mus = NSMutableAttributedString(attributedString: attributedString)
mus.enumerateAttribute(.font, in: NSRange(location: 0, length: mus.string.count)) { (value, range, stop) in
if let oldFont = value as? UIFont {
let newFont = oldFont.withSize(size)
mus.addAttribute(.font, value: newFont, range: range)
}
}
return mus
}
}

工作:

    label.attributedText = GuiUtils.setAttributedStringToSize(attributedString: attributedString, size: fontSize)

不工作:

    mutableAttributedString.replaceCharacters(in: gapRange, with: filledGap)
label.attributedText = GuiUtils.setAttributedStringToSize(attributedString: mutableAttributedString.replaceCharacters, size: fontSize)

不知何故,被替换的文本不会改变其大小。

最佳答案

请问,您确定您的 filledGap 属性字符串具有 font 属性吗?因为如果不这样做——这部分将不会由 enumerateAttribute block 处理。

在这种情况下,您的解决方法是将任何字体设置为整个 filledGap 字符串,以确保它的一部分将由 enumerateAttribute block 处理。

关于swift - attributedString 的字体大小不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56737185/

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