Skip to main content

What is the @ScaledMetric property wrapper?

About 1 minSwiftSwiftUIArticle(s)bloghackingwithswift.comcrashcourseswiftswiftuixcodeappstore

What is the @ScaledMetric property wrapper? 관련

SwiftUI by Example

Back to Home

What is the @ScaledMetric property wrapper? | SwiftUI by Example

What is the @ScaledMetric property wrapper?

Updated for Xcode 15

SwiftUI gives us the @ScaledMetric property wrapper to define numbers that should scale automatically according to the user’s Dynamic Type settings.

In its most basic usage, you give your property a default value and @ScaledMetric will do the rest. For example, this will draw the same picture at different sizes depending on the user’s settings:

struct ContentView: View {
    @ScaledMetric var imageSize = 100.0

    var body: some View {
        Image(systemName: "cloud.sun.bolt.fill")
            .resizable()
            .frame(width: imageSize, height: imageSize)
    }
}

If you need your scaling to match up against a specific other piece of text, you can use the relativeTo parameter for your property wrapper, which lets you specify what font size to match. For example, this will scale alongside the large title size:

@ScaledMetric(relativeTo: .largeTitle) var imageSize = 100.0
Similar solutions…
All SwiftUI property wrappers explained and compared | SwiftUI by Example

All SwiftUI property wrappers explained and compared
What is the @GestureState property wrapper? | SwiftUI by Example

What is the @GestureState property wrapper?
What is the @Published property wrapper? | SwiftUI by Example

What is the @Published property wrapper?
What is the @ObservedObject property wrapper? | SwiftUI by Example

What is the @ObservedObject property wrapper?
What is the @AppStorage property wrapper? | SwiftUI by Example

What is the @AppStorage property wrapper?

이찬희 (MarkiiimarK)
Never Stop Learning.