gpt4 book ai didi

ios - NSMutableAttributedString addAttribute for range 适用于所有字符串

转载 作者:行者123 更新时间:2023-11-29 06:01:33 28 4
gpt4 key购买 nike

我创建了具有不同属性的 NSMutableAttributedString,然后为一个范围添加了粗体属性。示例

let attText = NSMutableAttributedString(string: string, attributes: [
NSAttributedString.Key.font: UIFont.systemFont(ofSize: 15),
NSAttributedString.Key.foregroundColor: UIColor.Branding.darkText,
NSAttributedString.Key.paragraphStyle: paragraphStyle
])
if let word = string.components(separatedBy: " ").first {
let range = attText.mutableString.range(of: word, options: .caseInsensitive)
if range.location != NSNotFound {
attText.addAttribute(NSAttributedString.Key.font, value: UIFont.systemFont(ofSize: 15, weight: .semibold), range: range)
}
}

但是当我启动应用程序时,我看到所有字符串都是粗体。我在调试中看到属性字符串,它看起来像这样:

 some : Create{
NSColor = "UIExtendedSRGBColorSpace 0.247059 0.278431 0.337255 1";
NSFont = "<UICTFont: 0x7ff1c1c169e0> font-family: \".SFUIText-Semibold\"; font-weight: bold; font-style: normal; font-size: 15.00pt";
}
tasks for people{
NSColor = "UIExtendedSRGBColorSpace 0.247059 0.278431 0.337255 1";
NSFont = "<UICTFont: 0x7ff1c1c388d0> font-family: \".SFUIText\"; font-weight: normal; font-style: normal; font-size: 15.00pt";
}

据我所知,调试信息是可以的,但为什么在 iOS 模拟器中我看到所有字符串都是粗体?

最佳答案

请参见UILabel的attributedText文档:

  label.attributedText =  attText
``label.font = UIFont.systemFont(ofSize: 15, weight: .semibold)
print(label.attributedText)

设置 UILabel 的 attributeText 后,您将无法更改 font 、 textColor 或其他与样式相关的属性。否则你就会得到你现在所拥有的。我的猜测是在某些地方有一个修改被忽略了。

关于ios - NSMutableAttributedString addAttribute for range 适用于所有字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54628743/

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