⤴️

【SwiftUI】dynamicTypeSize(_:) は .alert .actionSheet .sheet のViewに連鎖しない

2024/10/28に公開

環境

Xcode 16.1
iPhone 16 (iOS18.1) シミュレータ

コード

@main
struct DynamicTypeTestApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
                .dynamicTypeSize(.xSmall ... .xxxLarge)
        }
    }
}
struct ContentView: View {
    
    @State var showingSheet = false
    
    var body: some View {
        VStack {
            Text("Hello, world!")
            Button("Show") {
                showingSheet = true
            }
            Spacer()
        }
        .padding()
        .sheet(isPresented: $showingSheet) {
        }
        content: {
            Text("ABC")
                .presentationDetents([.medium])
        }
    }
}

結果

左から .large .xxxLarge .accessibility5
ContentView に対する指定範囲の限界は .xxxLarge だが、.sheet(_) で表示したViewはそれを超えた .accessibility5 に反応している。

Discussion