swift 中填充修饰符的默认值是多少?

What is the default value of the padding modifier in swift?

只是一个简短的问题。我找不到 Swift 的 .padding() 修饰符的 默认值

ModelSelectorItem(variant: variant)
    .padding()

我知道我可以省略该值,swift 自行提供默认值。

问:SwiftUI中.padding()修饰符的默认值是多少?

据我从Apple的文档中了解到,没有标准值,它是Apple根据一些标准计算出来的。因此,对于不同的设备、用户的可访问性设置、如果用户在 iPad 上以并排模式使用应用程序等,它可能会有所不同...

Here 是文档:

The set of edges along which to pad this view; if nil the specified or system-calculated amount is applied to all edges.

如文档中所述,padding() 没有标准值,并且在不同平台上可能会有所不同。

我建议您使用以下代码创建您自己的修饰符:

struct MyDefaultPaddingModifier: ViewModifier {    
    func body(content: Content) -> some View {
        return content
            .padding(.all, 5) // you can store this as a variable based on your needs
    }
}

那你就有优雅的用法了:

ModelSelectorItem(variant: variant)
    .modifier(MyDefaultPaddingModifier())

我创建了这个测试,你可以在代码下面看到结果:

import SwiftUI

struct Test: View {
    var body: some View {
        VStack{
            Text("Hello, World!")
                .padding()
                .background(Color.red)
            
            Text("Hello, World!")
                .padding(16)
                .background(Color.blue)
        }
        
    }
}

struct Test_Previews: PreviewProvider {
    static var previews: some View {
        Test()
    }
}