SwiftUI - 使用内置形状



SwiftUI 支持一些内置形状,用于开发自定义设计和用户界面组件。这些形状易于使用,并且可以以各种样式、颜色、填充、变换等进行自定义。它们通常用于裁剪内容、创建自定义视图、组件等。SwiftUI 支持以下内置形状:

  • 圆形
  • 椭圆形
  • 矩形
  • 圆角矩形
  • 胶囊形

现在让我们详细讨论每个形状,然后在本章的最后,我们将使用这些形状创建一个简单的单元格。

圆形

我们可以使用 Circle() 创建一个圆形。它在视图框架的中心创建一个圆形。圆形的半径是框架长度的一半。默认情况下,圆形是实心的黑色,但我们可以使用各种修饰符(如填充、描边、框架等)对其进行修改。

语法

以下是语法:

Circle()

示例

import SwiftUI

struct ContentView: View {
   var body: some View {
      // Drawing circle
      Circle().fill(Color.brown).frame(width: 50, height: 50)      
   }
}
#Preview {
   ContentView()
}

输出

Builtin Shapes

椭圆形

椭圆形是二维的卵形,或者可以说它看起来像一个拉长的圆形。椭圆形的宽度和高度不同。在 SwiftUI 中,我们可以使用 Ellipse() 创建椭圆形。它创建一个位于视图框架内的椭圆形。我们可以使用修饰符根据需要修改椭圆形。

语法

以下是语法:

Ellipse()

示例

import SwiftUI

struct ContentView: View {
   var body: some View {    
      // Drawing ellipse
      Ellipse().stroke(Color.blue, lineWidth: 8).frame(width: 50, height: 100)      
   }
}
#Preview {
   ContentView()
}

输出

Builtin Shapes

矩形

矩形是最常用的形状。因此,我们可以使用 Rectangle() 轻松创建矩形。它将矩形对齐在视图框架内。它支持各种属性,允许它具有描边或用作蒙版。

语法

以下是语法:

Rectangle()

示例

import SwiftUI

struct ContentView: View {
   var body: some View {    
      // Drawing rectangle
      Rectangle().fill(Color.blue).frame(width: 100, height: 200)
   }
}
#Preview {
   ContentView()
}

输出

Builtin Shapes

圆角矩形

SwiftUI 还提供内置的 RoundedRectangle() 来创建圆角矩形形状。圆角矩形是一个非常有用的形状,它带有圆角 (cornerRadius) 和样式属性。它用于创建按钮。

语法

以下是语法:

RoundedRectangle(cornerRadius:CGSize, style: RoundedCornerStyle)

它接受以下参数:

  • cornerSize: 包含角的半径。
  • style: 表示圆角的样式。

示例

import SwiftUI

struct ContentView: View {
   var body: some View {
      // Drawing rounded rectangle
      RoundedRectangle(cornerRadius: 20, style: .circular)
         .fill(Color.pink)
         .frame(width: 300, height: 200)
   }
}
#Preview {
   ContentView()
}

输出

Builtin Shapes

胶囊形

SwiftUI 还提供了一个名为 capsule() 的特殊形状。它是一种药丸状或细长的椭圆形,两端圆润。它通常用于创建按钮、徽章和其他 UI 组件。

语法

以下是语法:

Capsule()

示例

import SwiftUI

struct ContentView: View {
   var body: some View {
      // Drawing capsule
      Capsule().fill(Color.pink).frame(width: 300, height: 100)
   }
}
#Preview {
   ContentView()
}

输出

Builtin Shapes

现在,我们将创建一个布局来了解这些形状的实际用途。在这里,我们将使用形状(例如 Rectangle() 用于背景,RoundedRectangle() 用于框,Circle() 用于徽标以及 Capsule() 用于按钮)创建一个登录页面。

示例

import SwiftUI

struct ContentView: View {
   var body: some View {
      ZStack {
         Rectangle()
            .foregroundColor(.brown)
            .ignoresSafeArea()
         HStack {
            Circle()
               .fill(Color.mint)
               .frame(width: 70, height: 70)
               .overlay(Text("T").font( /*@START_MENU_TOKEN@*/.title /*@END_MENU_TOKEN@*/))
            VStack {
               Text("TutorialsPoint").font(.title)
               HStack {
                  Capsule()
                     .fill(Color.gray)
                     .frame(height: 30)
                     .overlay(Text("Login").font(.headline))

               }.frame(width: 120)
            }
         }.padding()
         .background(Color.white)
         .clipShape(RoundedRectangle(cornerRadius: 50))
      }

   }
}

#Preview {
   ContentView()
}

输出

Builtin Shapes
广告