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

Posted

技术标签:

【中文标题】swift中填充修饰符的默认值是多少?【英文标题】:What is the default value of the padding modifier in swift? 【发布时间】:2020-12-19 09:33:58 【问题描述】:

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

ModelSelectorItem(variant: variant)
    .padding()

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

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

【问题讨论】:

我不会依赖这个,它在不同的平台上可能(而且是)不同,并且在未来的版本中可能会改变(而且会是)。 好点。有没有办法将值存储在变量中并使用它,而不是硬编码的值? 【参考方案1】:

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

Here 是文档:

用来填充这个视图的边的集合; 如果为 nil,则将指定的或系统计算的数量应用到所有边。

【讨论】:

【参考方案2】:

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

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()
    

【讨论】:

【参考方案3】:

如文档中所述,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())

【讨论】:

以上是关于swift中填充修饰符的默认值是多少?的主要内容,如果未能解决你的问题,请参考以下文章

java - 为啥在java中可以具有默认修饰符的类不能受到保护

JAVA中访问修饰符的作用

private/默认/protected/public权限修饰符的区别

Java的类,方法,变量等等的默认修饰符是啥

面试题解五 访问修饰符的区别

Java中各种(类方法属性)访问修饰符与修饰符的说明