Als erstes müssen Sie den Jargon von Apple verwendet, um zu beschreiben, eine Schrift verstehen:
Helvetica
ist eine Familie
Helvetica Bold
, Helvetica Italic
, Helvetica Bold Italic
, Helvetica Display
usw. sind Gesichter
Helvetica Bold, 12pt
ist eine Schriftart
Was Sie wollen, ist die Schriftfamilie einer zugeschrieben Zeichenfolge ersetzen:
let newAttributedString = NSMutableAttributedString(attributedString: label.attributedText)
// Enumerate through all the font ranges
newAttributedString.enumerateAttribute(NSFontAttributeName, in: NSMakeRange(0, newAttributedString.length), options: []) { value, range, stop in
guard let currentFont = value as? UIFont else {
return
}
// An NSFontDescriptor describes the attributes of a font: family name, face name, point size, etc.
// Here we describe the replacement font as coming from the "Hoefler Text" family
let fontDescriptor = currentFont.fontDescriptor.addingAttributes([UIFontDescriptorFamilyAttribute: "Hoefler Text"])
// Ask the OS for an actual font that most closely matches the description above
if let newFontDescriptor = fontDescriptor.matchingFontDescriptors(withMandatoryKeys: [UIFontDescriptorFamilyAttribute]).first {
let newFont = UIFont(descriptor: newFontDescriptor, size: currentFont.pointSize)
newAttributedString.addAttributes([NSFontAttributeName: newFont], range: range)
}
}
label.attributedText = newAttributedString
Original (San Francisco):
Replacement (Hoefler Text):
Mögliches Duplikat [ios swift: Ist es möglich, die Schriftart eines bestimmten Wortes in einem String zu ändern] (http://stackoverflow.com/questions/29165560/ios-swift-is-it - möglich, den Schriftart-Stil eines bestimmten Wort-in-einer-Zeichenfolge zu ändern) –
und http://stackoverflow.com/questions/18365631/example-of-nsattributedstring-with-two -different-font-sizes –
@Sneak: Diese Fragen/Antworten scheinen nicht das Kernproblem anzugehen, die ursprünglichen Attribute intakt zu lassen, wie Schriftfarbe, Schriftgröße usw. – Kashif