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