From 202f34a969723cc9e68dcd3cc067a9bc7f0d56c7 Mon Sep 17 00:00:00 2001 From: Greg Date: Wed, 31 Jan 2024 14:57:38 -0800 Subject: [PATCH] scaledFont(for:) --- .../SwiftyMarkdown/SwiftyMarkdown+iOS.swift | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/Sources/SwiftyMarkdown/SwiftyMarkdown+iOS.swift b/Sources/SwiftyMarkdown/SwiftyMarkdown+iOS.swift index 84a029f..8aca89a 100644 --- a/Sources/SwiftyMarkdown/SwiftyMarkdown+iOS.swift +++ b/Sources/SwiftyMarkdown/SwiftyMarkdown+iOS.swift @@ -129,12 +129,18 @@ extension SwiftyMarkdown { font = UIFont.preferredFont(forTextStyle: textStyle) } - if globalItalic, let italicDescriptor = font.fontDescriptor.withSymbolicTraits(.traitItalic) { - font = UIFont(descriptor: italicDescriptor, size: fontSize ?? 0) - } - if globalBold, let boldDescriptor = font.fontDescriptor.withSymbolicTraits(.traitBold) { - font = UIFont(descriptor: boldDescriptor, size: fontSize ?? 0) - } + var traits: UIFontDescriptor.SymbolicTraits = [] + if globalItalic { + traits.insert(.traitItalic) + } + if globalBold { + traits.insert(.traitBold) + } + if !traits.isEmpty, let descriptor = font.fontDescriptor.withSymbolicTraits(traits) { + let customFont = UIFont(descriptor: descriptor, size: fontSize ?? 0) + let fontMetrics = UIFontMetrics(forTextStyle: textStyle) + font = fontMetrics.scaledFont(for: customFont) + } return font