首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我们在SwiftUI中有填充SwiftUI吗?

我们在SwiftUI中有填充SwiftUI吗?
EN

Stack Overflow用户
提问于 2021-02-27 13:59:41
回答 1查看 425关注 0票数 0

我想知道我是否可以访问苹果在SwiftUI中填充的默认值?目前,我使用的是自定义的iPhone值为16,但它可以在不同的设备或Swift或SwiftUI的新更新中不同,因此我希望使它成为未来的更新和设备证明。

代码语言:javascript
复制
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()
        
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-27 15:21:47

我不知道获得默认值的任何方法,但是您可以通过将length属性设为可选属性并将其设置为默认值为0来解决它。这样做的唯一缺点是,您不能只使用length属性调用padding,所以要么调用它,边设置为.all,要么为此使用另一个属性。

这里有一个边的性质的解决方案。

代码语言:javascript
复制
@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()
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66399527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档