- SwiftUI 教程
- SwiftUI - 首頁
- SwiftUI - 概述
- SwiftUI vs 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 - 模糊效果
- 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 - 討論
SwiftUI - 形狀
形狀用於在 SwiftUI 中為使用者介面建立圖形元素。它們可以調整大小、自定義和重複使用。它們可以非常高效地建立複雜且使用者友好的設計。SwiftUI 提供各種預定義形狀,例如矩形、圓形等,並允許我們輕鬆地使用 Shape 協議建立任何自定義形狀。
我們可以藉助預定義的修飾符(例如 fill()、background() 等)來自定義任何形狀。在本章中,我們將學習如何建立形狀,並瞭解 SwiftUI 提供的預定義方法和修飾符。
在 SwiftUI 中建立自定義形狀
在 SwiftUI 中,我們可以使用預定義的方法或使用 Shape 協議來建立形狀。此處使用 Shape 協議來建立自定義形狀。因此,要建立自定義形狀,我們需要建立一個符合 Shape 協議的結構體。
在此結構體中,我們呼叫 path(in:) 方法來使用 Path 結構體定義形狀的路徑。之後,我們在 ContentView 中使用此結構體來自定義形狀並獲取形狀的即時預覽。我們也可以簡單地使用 Path() 結構體來建立形狀。
示例 1
以下 SwiftUI 程式用於使用 Shape 協議建立自定義正方形形狀。
import SwiftUI
struct mySquare: Shape {
func path(in rect: CGRect) -> Path {
var path = Path()
path.move(to: CGPoint(x: rect.minX, y: rect.minY))
path.addLine(to: CGPoint(x: rect.maxX, y: rect.minY))
path.addLine(to: CGPoint(x: rect.maxX, y: rect.maxY))
path.addLine(to: CGPoint(x: rect.minX, y: rect.maxY))
path.closeSubpath()
return path
}
}
struct ContentView: View {
var body: some View {
mySquare()
.fill(Color.green)
.frame(width: 100, height: 100)
}
}
#Preview {
ContentView()
}
輸出
示例 2
以下 SwiftUI 程式用於使用 Path() 結構體建立自定義正方形形狀。
import SwiftUI
struct ContentView: View {
var body: some View {
Path { xPath in
xPath.move(to: CGPoint(x: 50, y: 50))
xPath.addLine(to: CGPoint(x: 110, y: 50))
xPath.addLine(to: CGPoint(x: 110, y: 100))
xPath.addLine(to: CGPoint(x: 50, y: 100))
xPath.closeSubpath()
}
.stroke(Color.red, lineWidth: 5)
}
}
#Preview {
ContentView()
}
輸出
在 SwiftUI 中建立形狀的方法
SwiftUI 支援各種內建方法,這些方法用於開發各種型別的形狀,使 UI 更具吸引力。一些常用的方法如下:
| 方法 | 描述 |
|---|---|
| path(in rect:CGRect)->Path | 此方法用於在矩形參考系中指定形狀輪廓。它只接受一個 rect 引數,它代表為給定形狀指定的參考系。 |
| move(to end:CGPoint) | 它用於指定新路徑的起點。此方法只接受一個引數,即 end。此處 end 包含新子路徑的起始座標。 |
| addLine(to end: CGPoint) | 此方法用於從當前點插入一條直線到指定點。它只接受一個引數,即 end。此引數代表線段端點的座標。 |
| addArc() | 此方法用於在路徑中插入給定半徑和角度的圓弧。此方法接受六個引數
|
| addCurve(to:control1:control2) | 此方法用於建立曲線,曲線從路徑的當前點開始,在指定的終點結束。曲線的曲率由兩個控制點管理。 |
| addEllipse(in:transform:) | 此函式用於在矩形中插入橢圓。此處橢圓的中心是rect引數指定的矩形的中間點,橢圓的長軸和短軸由矩形的寬度和高度指定。 |
| addRect(CGRect, transform) | 此函式用於在給定路徑中新增矩形路徑。 |
| closeSubpath() | 此方法用於關閉當前子路徑。 |
| forEach(Path.Element) | 此方法用於使用給定路徑中存在的每個元素呼叫主體。 |
在 SwiftUI 中自定義形狀的修飾符
SwiftUI 支援各種內建修飾符,用於根據使用者介面設計的需求修改形狀。我們可以在形狀上使用單個或多個修飾符。SwiftUI 按順序執行修飾符,因此請相應地應用它們。一些常用的修飾符如下:
| 修飾符 | 描述 |
|---|---|
| .fill() | 它用於使用顏色或漸變填充形狀。對於顏色,您可以使用“Color.colorName”作為引數;對於漸變,您可以使用“.colorName.gradient”。 |
| .stroke(_content:style:) | 它用於藉助顏色或漸變建立形狀的輪廓。它接受兩個引數:content 是用於描邊形狀的顏色或漸變;style 用於透過調整線條寬度和線條型別(例如簡單的連續線或虛線)來增強描邊。 |
| .frame(width:height:alignment:) | 它用於在不可見的框架中設定形狀,我們可以在其中根據我們的要求調整形狀的高度、寬度和對齊方式。 |
| .shadow(color:radius:x:y:) | 它用於在給定形狀上應用陰影效果。此修飾符接受四個引數,它們是可選的,這意味著您可以使用任何一個或所有這些引數,這取決於您的需求。此處 color 引數用於指定陰影的顏色,radius 引數指定我們可以模糊陰影的程度,x 和 y 是陰影水平和垂直偏移的量。 |
| .opacity(value) | 它用於調整給定形狀的透明度。此處此修飾符的值介於 0(完全透明)和 1(完全不透明)之間。 |
| .rotationEffect(_angle:anchor:) | 它用於以特定角度旋轉形狀。此方法接受兩個引數:angle 用於旋轉影像的角度;anchor 是形狀執行旋轉的單位點,此引數的預設值為中心。 |
| .offset(x:,y:) | 它用於水平和垂直移動形狀特定數量。它接受兩個引數:x 用於水平偏移形狀;y 用於垂直偏移形狀。 |
| .overlay | 它用於在給定形狀的頂部新增/疊加另一個檢視。 |
| .background | 它用於在給定形狀的背面新增另一個檢視。 |
SwiftUI 中的內建形狀
SwiftUI 提供了一些內建形狀,用於設計各種元件。這些形狀易於使用且易於自定義,例如使用 SwiftUI 提供的修飾符進行樣式設定、著色、填充等。以下是 SwiftUI 支援的內建形狀:
| 形狀 | 描述 |
|---|---|
| Circle() | 它用於建立圓形形狀。 |
| Ellipse() | 它用於建立橢圓形形狀。 |
| Rectangle() | 它用於建立矩形形狀。 |
| RoundedRectangle() | 它用於建立圓角矩形形狀。 |
| Capsule() | 它用於建立膠囊或藥丸狀形狀。 |
廣告