我想知道我是否可以访问苹果在SwiftUI中填充的默认值?目前,我使用的是自定义的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()
}
}发布于 2021-02-27 15:21:47
我不知道获得默认值的任何方法,但是您可以通过将length属性设为可选属性并将其设置为默认值为0来解决它。这样做的唯一缺点是,您不能只使用length属性调用padding,所以要么调用它,边设置为.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()
}https://stackoverflow.com/questions/66399527
复制相似问题