SwiftUI - 视图填充



填充在 UI 元素周围添加额外的空间,使它们更易于阅读。它是用户界面设计中最常用的工具。它可以提高界面的功能和外观。它可以防止内容显得杂乱,并确保视图上每个 UI 组件之间的清晰区分。

“.padding” 修饰符

SwiftUI 支持一个名为 padding() 的内置修饰符用于填充。此修饰符会在视图内容周围添加额外的空间。此额外空间将内容与视图边缘分开,使视图更具吸引力和可读性。我们可以将填充均匀地应用于视图的所有侧边或各个边缘。

此修饰符可以带或不带参数使用。如果此修饰符不包含任何参数,则会将相同数量的填充应用于视图的所有边缘。

语法

以下是语法:

.padding(edges, amount)

参数

此方法可以具有以下可选参数:

edge: 用于指定应在哪个侧边应用填充。此参数的默认值为.all。它支持以下选项:

  • .all: 将相同的填充应用于视图的所有边缘。

  • .top: 仅将填充应用于视图的顶部边缘。

  • .bottom: 仅将填充应用于视图的底部边缘。

  • .trailing: 仅将填充应用于视图的右侧边缘。

  • .leading: 仅将填充应用于视图的左侧边缘。

  • .horizontal: 将填充应用于视图的顶部和底部边缘。

  • .vertical: 将填充应用于视图的左侧和右侧边缘。

amount: 表示要应用于边缘的填充量。此参数的默认值为 nil。

让我们借助以下示例了解填充:

示例 1

以下 SwiftUI 程序用于统一填充。当我们希望将相同的填充应用于视图的所有侧边时,使用统一填充。对于统一填充,我们将使用不带任何参数的 padding() 修饰符。

import SwiftUI
struct ContentView: View {
   var body: some View {
     VStack{
       // Without padding
       Rectangle()
         .fill(Color.yellow)
         .frame(width: 300,height: 100, alignment: .center)
         .overlay(Text("TutorialsPoint").bold())       
       // With padding
       Rectangle()
         .fill(Color.yellow)
         .frame(width: 300,height: 100, alignment: .center)
         .overlay(Text("TutorialsPoint").bold().padding())       
      }     
   }
}
#Preview {
   ContentView()
}

输出

View Padding

示例 2

以下 SwiftUI 程序用于自定义填充值。当我们希望将特定数量的填充均匀地应用于视图的所有侧边时,使用自定义填充。这里我们将值传递给 padding(30) 修饰符以进行自定义填充。

import SwiftUI

struct ContentView: View {
   var body: some View {
     VStack{
       // Without padding
       Rectangle()
         .fill(Color.yellow)
         .frame(width: 300,height: 100, alignment: .center)
         .overlay(Text("TutorialsPoint").bold())
       
       // With custom padding
       Rectangle()
         .fill(Color.mint)
         .frame(width: 300,height: 100, alignment: .center)
         .overlay(Text("TutorialsPoint").bold().padding(100))       
      }     
   }
}
#Preview {
   ContentView()
}

输出

View Padding

示例 3

以下 SwiftUI 程序用于在特定侧边应用填充值。这里我们通过在 padding 修饰符中传递侧边及其填充长度来在某些特定侧边应用填充。

import SwiftUI

struct ContentView: View {
   var body: some View {
     VStack{
       // Without padding
       Rectangle()
         .fill(Color.yellow)
         .frame(width: 300,height: 100, alignment: .center)
         .overlay(Text("TutorialsPoint").bold())
       
       // With padding
       Rectangle()
         .fill(Color.mint)
         .frame(width: 300,height: 100, alignment: .center)
         .overlay(Text("TutorialsPoint").bold().padding(.bottom, 50).padding(.leading, 40))       
     }     
   }
}
#Preview {
   ContentView()
}

输出

View Padding

示例 4

以下 SwiftUI 程序用于使用多侧填充。这里我们通过在 .padding() 修饰符中传递数组来一次在多侧应用填充。

import SwiftUI
struct ContentView: View {
   var body: some View {
     VStack{
       // Without padding
       Rectangle()
         .fill(Color.yellow)
         .frame(width: 300,height: 100, alignment: .center)
         .overlay(Text("TutorialsPoint").bold())
       
       // With padding
       Rectangle()
         .fill(Color.mint)
         .frame(width: 300,height: 100, alignment: .center)
         .overlay(Text("TutorialsPoint").bold().padding([.top,.leading], 50))       
     }     
   }
}
#Preview {
   ContentView()
}

输出

View Padding
广告