StructureFoundationInternationalization
IntegerFormatStyle.Attributed
struct Attributed
Overview
Use the attributed modifier on a FloatingPointFormatStyle to create a format style of this type.
The attributed strings that this format style creates contain attributes from the AttributeScopes.FoundationAttributes.NumberFormatAttributes attribute scope. Use these attributes to determine which runs of the attributed string represent different parts of the formatted value.
The following example finds runs of the attributed string that represent different parts of a formatted currency, and adds additional attributes like AttributeScopes/SwiftUIAttributes/foregroundColor and AttributeScopes/FoundationAttributes/inlinePresentationIntent.
func attributedPrice(price: Decimal) -> AttributedString {
var attributedPrice = price.formatted(
.currency(code: "USD")
.attributed)
for run in attributedPrice.runs {
if run.attributes.numberSymbol == .currency ||
run.attributes.numberSymbol == .decimalSeparator {
attributedPrice[run.range].foregroundColor = .red
}
if run.attributes.numberPart == .integer ||
run.attributes.numberPart == .fraction {
attributedPrice[run.range].inlinePresentationIntent = [.stronglyEmphasized]
}
}
return attributedPrice
}
User interface frameworks like SwiftUI can use these attributes when presenting the attributed string, as seen here:
Topics
Initializers
Instance Methods
func format(Value) -> AttributedStringFormats an integer, using this style.func locale(Locale) -> IntegerFormatStyle<Value>.AttributedModifies the format style to use the specified locale.
Relationships
Conforms To
FormatStyleSwift.DecodableSwift.EncodableSwift.EquatableSwift.HashableSwift.SendableSwift.SendableMetatype