我们在SwiftUI中有填充默认值吗?
我想知道我是否可以在SwiftUI中访问苹果默认的padding值?目前,我在iPhone上使用的自定义查找值为16,但在不同的设备或Swift或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
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