我们在SwiftUI中有填充默认值吗?

我们在SwiftUI中有填充默认值吗?,swiftui,Swiftui,我想知道我是否可以在SwiftUI中访问苹果默认的padding值?目前,我在iPhone上使用的自定义查找值为16,但在不同的设备或Swift或SwiftUI的新更新中可能会有所不同,因此我希望使其成为未来的更新和设备验证 import SwiftUI struct ContentView: View { @State private var paddingLength: CGFloat = 16.0 // Do we have someth

我想知道我是否可以在SwiftUI中访问苹果默认的padding值?目前,我在iPhone上使用的自定义查找值为16,但在不同的设备或Swift或SwiftUI的新更新中可能会有所不同,因此我希望使其成为未来的更新和设备验证

import SwiftUI
    
    struct ContentView: View {
        
        @State private var paddingLength: CGFloat = 16.0 // Do we have something like: Padding.defaultValue to use it?
        
    var body: some View {
        
        Spacer()
        
        Text("Hello, world!")
            .padding()
            .background(Color.red)
        
        Text("Hello, world!")
            .padding(paddingLength)
            .background(Color.yellow)
        
        Spacer()

        Button("update padding to 0") {
            
            paddingLength = 0
        }
        .padding(.bottom)
        
        Button("update padding to default") {
            
            paddingLength = 16  // Do we have something like: Padding.defaultValue to use it?
        }
        .padding(.bottom)
        
        Spacer()
        
    }
}

我不知道有什么方法可以获得默认值,但是您可以通过将length属性设置为可选并将其设置为nil作为默认值来解决这个问题。唯一的缺点是,您不能仅使用length属性调用
padding
,因此您可以在edges设置为
.all
的情况下调用它,或者为此使用另一个属性

这是一个解决方案,它还具有边的属性

@State var paddingLength: CGFloat? = nil
@State var edge: Edge.Set = .all
var body: some View {
    Spacer()

    Text("Hello, world!")
        .padding()
        .background(Color.red)
    
    Text("Hello, world!")
        .padding(edge, paddingLength)
        .background(Color.yellow)

    Spacer()

    Button("update padding to 0") {
        paddingLength = 0
    }
    .padding(.bottom)

    Button("update padding to default") {
        paddingLength = nil
    }
    .padding(.bottom)

    Spacer()
}

您在执行
padding()
时已经使用了默认值,我知道,但问题是找到该值,以便在我们将其更改为其他值时使用,请参见我的代码示例,您没有回答问题,可能根本不可能,但您以巧妙的方式进行了补救,thanksI确实查看了
环境变量
视图的属性
,但没有找到任何内容。让我们看看还有没有人知道路。好主意!我有一种胃部的感觉,苹果使用了这样的东西:@inlinable public func padding(\uLength:CGFloat=16.0)->一些视图LoL