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

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

ModelSelectorItem(variant: variant)
    .padding()

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

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

【问题讨论】:

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

标签: swift swiftui modifier


【解决方案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())
      

      【讨论】:

        猜你喜欢
        • 2014-08-24
        • 1970-01-01
        • 2019-03-28
        • 2018-02-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-01
        相关资源
        最近更新 更多