是否有任何帮助可以使选定的文本字符串视图变为粗体、斜体、下划线,就像 iOS 的本机“Notes”应用程序一样。请给我有用的链接。我厌倦了一整天的寻找。非常感谢。
我附上了我的代码,使属性字符串粗体和斜体都像iPhone“Notes”的本机应用程序一样。
attributedString.beginEditing()
attributedString.addAttributes([NSFontAttributeName: UIFont.boldSystemFont(ofSize: CGFloat(app_delegate.settings.chatFontSize))], range: range)
attributedString.addAttributes([NSFontAttributeName: UIFont.italicSystemFont(ofSize: CGFloat(app_delegate.settings.chatFontSize))], range: range)
attributedString.endEditing()
但它只提供斜体字符串,而不提供粗体字符串。我需要斜体和粗体。谢谢。
代码中的问题是您正在设置斜体字体并覆盖刚刚设置的粗体字体。你需要的是使用UIFontDescriptor
具有符号特征,正如你在这个 SO 中看到的那样answer。因此,只需初始化系统字体,获取其字体描述符并向其添加 TraitBold 和 TraitItalic 即可。然后你只需要使用 UIFont 初始化器初始化你的新字体init(descriptor: UIFontDescriptor, size pointSize: CGFloat)
:
斯威夫特4代码:
attributedString.beginEditing()
let systemFont: UIFont = .systemFont(ofSize: 32)
if let descriptor = systemFont.fontDescriptor.withSymbolicTraits([.traitBold, .traitItalic]) {
let systemFontBoldAndItalic = UIFont(descriptor: descriptor, size: 32)
attributedString.addAttributes([.font: systemFontBoldAndItalic, .underlineStyle: NSUnderlineStyle.styleSingle.rawValue], range: NSRange(location: 0, length: attributedString.length))
}
attributedString.endEditing()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)