SwiftUI 教程

SwiftUI 主页 SwiftUI 概览 SwiftUI 与 UIkit

SwiftUI 环境

SwiftUI 安装和环境配置 SwiftUI 基本组件 SwiftUI 构建第一个应用程序

SwiftUI 视图

SwiftUI 视图 SwiftUI 自定义文本视图 SwiftUI 自定义图像视图 SwiftUI 堆栈

SwiftUI 绘制形状

SwiftUI 形状 SwiftUI 绘制线条 SwiftUI 绘制矩形 SwiftUI 绘制圆角矩形 SwiftUI 绘制三角形 SwiftUI 绘制圆形 SwiftUI 绘制星形 SwiftUI 绘制多边形 SwiftUI 绘制饼图 SwiftUI 使用内置形状

SwiftUI 文本

SwiftUI 文本视图 SwiftUI 文本输入和输出

SwiftUI 颜色

SwiftUI 颜色 SwiftUI 颜色选择器 SwiftUI 渐变 SwiftUI 调整颜色

SwiftUI 效果

SwiftUI 效果 SwiftUI 混合效果 SwiftUI BLur 效果 SwiftUI 阴影效果 SwiftUI 悬停效果

SwiftUI 动画

SwiftUI 动画 SwiftUI 创建动画 SwiftUI 创建显式动画 SwiftUI 多个动画 SwiftUI 过渡 SwiftUI 不对称过渡 SwiftUI 自定义过渡

SwiftUI 图像

SwiftUI 图像 SwiftUI 图像作为背景 SwiftUI 旋转图像 SwiftUI 媒体

SwiftUI 视图布局

SwiftUI 视图布局 SwiftUI 视图大小 SwiftUI 视图间距 SwiftUI 视图填充

SwiftUI UI 控件

SwiftUI UI 控件 SwiftUI 按钮 SwiftUI 复选框 SwiftUI 菜单栏 SwiftUI 工具栏 SwiftUI 搜索栏 SwiftUI 文本字段 SwiftUI 滑块 SwiftUI 切换 SwiftUI 选择器 SwiftUI 菜单

SwiftUI 列表 &表格

SwiftUI 列表 SwiftUI 静态列表 SwiftUI 动态列表 SwiftUI 自定义列表 SwiftUI 表格

SwiftUI 表单

SwiftUI 表单 SwiftUI 在部分中拆分表单

SwiftUI 事件处理

SwiftUI 事件处理 SwiftUI 手势 SwiftUI 剪贴板 SwiftUI 拖放 SwiftUI 焦点 SwiftUI 警报

SwiftUI 杂项

SwiftUI 容器 SwiftUI 导航 SwiftUI 通知 SwiftUI 跨平台 UI SwiftUI 数据 SwiftUI 可访问性

SwiftUI 框架集成

SwiftUI 框架集成 SwiftUI 与 UIKit 交互 SwiftUI 创建 macOS 应用

SwiftUI 有用资源

SwiftUI 有用资源 SwiftUI 讨论


SwiftUI - 使用内置形状

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

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

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

圆形

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

语法

以下是语法−

Circle()

示例

import SwiftUI

struct ContentView: View {
   var body: some View {
      // 绘制圆形
      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 {    
      // 绘制椭圆
      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 {    
      // 绘制矩形
      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 {
      // 绘制圆角矩形
      RoundedRectangle(cornerRadius: 20, style: .circular)
         .fill(Color.pink)
         .frame(width: 300, height: 200)
   }
}
#Preview {
   ContentView()
}

输出

Builtin Shapes

Capsule

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

语法

以下是语法−

Capsule()

示例

import SwiftUI

struct ContentView: View {
   var body: some View {
      // 绘图胶囊
      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