monospacedDigit()
Modifies the text view’s font to use fixed-width digits, while leaving other characters proportionally spaced.
Declaration
nonisolated func monospacedDigit() -> TextReturn Value
A text view with a modified font that uses fixed-width numeric characters, while leaving other characters proportionally spaced.
Discussion
This modifier only affects numeric characters, and leaves all other characters unchanged.
The following example shows the effect of monospacedDigit() on a text view. It arranges two text views in a VStack, each displaying a formatted date that contains many instances of the character 1. The second text view uses the monospacedDigit(). Because 1 is usually a narrow character in proportional fonts, applying the modifier widens all of the 1s, and the text view as a whole. The non-digit characters in the text view remain unaffected.
let myDate = DateComponents(
calendar: Calendar(identifier: .gregorian),
timeZone: TimeZone(identifier: "EST"),
year: 2011,
month: 1,
day: 11,
hour: 11,
minute: 11
).date!
var body: some View {
VStack(alignment: .leading) {
Text(myDate.formatted(date: .long, time: .complete))
.font(.system(size: 20))
Text(myDate.formatted(date: .long, time: .complete))
.font(.system(size: 20))
.monospacedDigit()
}
.padding()
.navigationTitle("monospacedDigit() Modifier")
}[Image]
If the base font of the text view doesn’t support fixed-width digits, the font remains unchanged.