Text組件:用于顯示文本內(nèi)容
示例1:Text("Hello, World!")
霉颠,顯示"Hello, World!"文本
示例2:Text("Your score is (score)")
对碌,顯示帶變量的文本,其中score是一個整數(shù)變量
SecureField組件:用于輸入敏感信息(例如密碼)的文本框
示例1:SecureField("Password", text: $password)
蒿偎,創(chuàng)建一個帶有“Password”標簽的安全文本框朽们,用戶可以在其中輸入密碼。此示例中的$password是一個綁定變量诉位,它將保存用戶輸入的密碼骑脱。
示例2:SecureField("", text: $password).textFieldStyle(RoundedBorderTextFieldStyle())
, 創(chuàng)建一個帶有圓角邊框樣式的安全文本框,沒有標簽苍糠,用戶可以在其中輸入密碼叁丧。這個例子展示了如何使用textFieldStyle()方法來應(yīng)用自定義文本框樣式。
Label組件:用于將標簽與內(nèi)容組合在一起
示例1:Label("Save", systemImage: "square.and.arrow.down")
, 創(chuàng)建一個帶有系統(tǒng)圖像“square.and.arrow.down”的標簽岳瞭,“Save”是標簽的文本內(nèi)容拥娄。
示例2:Label { Text("Edit") Text("Document") } icon: { Image(systemName: "doc") }
, 創(chuàng)建一個標簽,其中包含文本“Edit”和“Document”瞳筏,以及系統(tǒng)圖像“doc”稚瘾。
Image組件:用于顯示圖像
示例1:Image("example")
,顯示名為"example"的本地圖像
示例2:Image("[https://xxx.jpg")
姚炕,顯示遠程圖像摊欠,其中"https://xxx.jpg"是圖像的URL
AsyncImage:用于異步加載圖像的視圖
示例1:AsyncImage(url: URL(string: "[https://example.com/image.png](https://example.com/image.png)"), placeholder: { Text("Loading ...") }, image: { Image(uiImage: $0).resizable() })
, 創(chuàng)建一個異步圖像視圖,用于加載指定URL的圖像柱宦。在圖像加載完成之前凄硼,將顯示一個“Loading ...”文本視圖。
示例2:AsyncImage(url: URL(string: "[https://example.com/image.png](https://example.com/image.png)"), transaction: Transaction(animation: .spring())) { phase in switch phase { case .empty: ProgressView() case .success(let image): image.resizable() case .failure(_): Image(systemName: "exclamationmark.icloud.fill") } }
, 創(chuàng)建一個異步圖像視圖捷沸,用于加載指定URL的圖像摊沉。這個例子中的視圖是可變的,并在加載過程中顯示進度視圖痒给。如果加載失敗说墨,將顯示一個帶有感嘆號的圖標骏全。
Button組件:用于創(chuàng)建交互式按鈕
示例1:Button("Click me!") { print("Button clicked!") }
,創(chuàng)建一個按鈕尼斧,當按鈕被點擊時姜贡,輸出"Button clicked!"
示例2:Button(action: startGame) { Text("Start game") }
,創(chuàng)建一個按鈕棺棵,當按鈕被點擊時調(diào)用startGame函數(shù)楼咳,并顯示"Start game"文本
EditButton:一個按鈕,用于觸發(fā)編輯模式烛恤,可以在此模式下編輯列表和其他視圖
示例1:NavigationView { List { ForEach(items) { item in Text(item) }.onDelete(perform: delete) } .navigationBarTitle("Items") .navigationBarItems(trailing: EditButton()) }
, 使用EditButton將列表視圖轉(zhuǎn)換為可編輯模式母怜,并將其放置在導(dǎo)航欄的右側(cè)。
示例2:VStack { Text("Hello, world!") Spacer() EditButton() }
, 在一個垂直的StackView中使用EditButton缚柏,以便用戶可以通過點擊該按鈕將其放置在可編輯模式下苹熏。
TextField組件:用于接受用戶輸入的文本
示例1:TextField("Enter your name", text: $name)
硫朦,創(chuàng)建一個文本框非凌,讓用戶輸入他們的名字抵碟,并將輸入的文本存儲在名為name的變量中
示例2:TextField("Enter your password", text: $password).textFieldStyle(RoundedBorderTextFieldStyle())
晓铆,創(chuàng)建一個帶有圓角邊框的文本框瀑梗,讓用戶輸入他們的密碼广恢,并將輸入的文本存儲在名為password的變量中
Toggle組件:用于創(chuàng)建開關(guān)按鈕
示例1:Toggle("Toggle me", isOn: $toggleValue)
实胸,創(chuàng)建一個帶有標簽的切換按鈕叙甸,并將其狀態(tài)存儲在名為toggleValue的布爾變量中
示例2:Toggle(isOn: $isDarkMode) { Text("Dark mode") }
史翘,創(chuàng)建一個切換按鈕铐然,當按鈕被打開時,應(yīng)用程序進入暗模式恶座,并顯示"Dark mode"文本
Slider組件:用于創(chuàng)建滑塊
示例1:Slider(value: $sliderValue, in: 0...10)
搀暑,創(chuàng)建一個滑塊,將其值存儲在名為sliderValue的變量中跨琳,并將其范圍設(shè)置為0到10
示例2:Slider(value: $fontSize, in: 12...24, step: 2) { Text("Font size: (fontSize)") }
自点,創(chuàng)建一個滑塊,當滑塊的值改變時脉让,將字體大小存儲在名為fontSize的變量中桂敛,并顯示"Font size: xx"文本,其中xx是字體大小的值
NavigationView組件:用于創(chuàng)建具有導(dǎo)航功能的視圖
示例1:NavigationView { Text("Hello, World!") }
溅潜,創(chuàng)建一個帶有"Hello, World!"文本的視圖术唬,并添加導(dǎo)航功能
示例2:NavigationView { List(items) { Text($(item) } }
,創(chuàng)建一個帶有列表視圖的導(dǎo)航視圖滚澜,其中items是一個包含多個項目的數(shù)組粗仓,每個項目都會顯示為列表中的一個行文本。
VStack和HStack組件:用于垂直和水平布局子視圖
示例1:VStack(alignment: .leading, spacing: 10) { Text("Title") Text("Subtitle") }
,創(chuàng)建一個垂直堆棧借浊,其中包含標題和副標題文本塘淑,標題文本位于上方,副標題文本位于下方蚂斤,兩個文本之間的間距為10個點存捺。
示例2:HStack { Image("icon") Text("Label") }
,創(chuàng)建一個水平堆棧曙蒸,其中包含圖像和標簽文本捌治,圖像位于標簽文本的左側(cè)。
List組件:用于創(chuàng)建列表視圖
示例1:List(items) { Text($0) }
纽窟,創(chuàng)建一個簡單的列表視圖肖油,其中items是一個包含字符串的數(shù)組,每個字符串都會顯示為一個列表行文本师倔。
示例2:List(tasks) { task in TaskView(task: task) }
,創(chuàng)建一個包含多個任務(wù)視圖的列表視圖周蹭,其中tasks是一個包含多個任務(wù)對象的數(shù)組趋艘,TaskView是一個自定義的視圖組件,用于顯示單個任務(wù)凶朗。
Form組件:用于創(chuàng)建表單視圖
示例1:Form { TextField("Name", text: $name) TextField("Email", text: $email) }
瓷胧,創(chuàng)建一個包含姓名和電子郵件文本字段的簡單表單視圖。
示例2:Form { Toggle("Dark mode", isOn: $isDarkMode) Section(header: Text("Settings")) { TextField("Username", text: $username) TextField("Password", text: $password) } }
棚愤,創(chuàng)建一個包含切換按鈕和用戶名/密碼輸入的表單視圖搓萧,切換按鈕用于切換暗模式,用戶名和密碼輸入包含在一個包含標題的部分中宛畦。
Alert組件:用于創(chuàng)建警報框視圖
示例1:Button("Show Alert") { showAlert.toggle() } .alert(isPresented: $showAlert) { Alert(title: Text("Alert"), message: Text("This is an alert"), dismissButton: .default(Text("OK"))) }
瘸洛,創(chuàng)建一個按鈕,單擊后顯示一個帶有標題次和,消息和一個“OK”按鈕的警報框視圖反肋。
示例2:Alert(title: Text("Delete"), message: Text("Are you sure you want to delete this item?"), primaryButton: .destructive(Text("Delete")) { deleteItem() }, secondaryButton: .cancel())
,創(chuàng)建一個帶有警告消息踏施,一個紅色的“刪除”按鈕和一個“取消”按鈕的警報框視圖石蔗,用于在用戶確認刪除操作之前進行確認。
ActionSheet組件:用于創(chuàng)建操作表視圖
示例1:Button("Show Action Sheet") { showActionSheet.toggle() } .actionSheet(isPresented: $showActionSheet) { ActionSheet(title: Text("Actions"), message: Text("Choose an action"), buttons: [.default(Text("Action 1")), .default(Text("Action 2")), .cancel()]) }
畅形,創(chuàng)建一個按鈕养距,單擊后顯示一個操作表視圖,其中包含兩個默認操作和一個“取消”按鈕日熬。
示例2:ActionSheet(title: Text("Share"), message: Text("Choose a sharing option"), buttons: [.default(Text("Share on Facebook")) { shareOnFacebook() }, .default(Text("Share on Twitter")) { shareOnTwitter() }, .default(Text("Share via Email")) { shareViaEmail() }, .cancel()])
棍厌,創(chuàng)建一個帶有標題和消息的操作表視圖,其中包含三個不同的共享選項按鈕和一個“取消”按鈕。每個按鈕上的操作會調(diào)用不同的分享函數(shù)定铜。
TabView組件:用于創(chuàng)建帶有多個標簽頁的視圖
示例1:TabView { Text("Tab 1") .tabItem { Image(systemName: "star") Text("Tab 1") } Text("Tab 2") .tabItem { Image(systemName: "heart") Text("Tab 2") } }
阳液,創(chuàng)建一個帶有兩個標簽頁的視圖,每個標簽頁都包含一個文本視圖和一個圖標揣炕,用于切換不同的視圖內(nèi)容帘皿。
示例2:TabView(selection: $selectedTab) { ForEach(tabs) { tab in TabContentView(tab: tab) .tabItem { Image(tab.icon) Text(tab.title) } } }
,創(chuàng)建一個具有多個標簽頁的視圖畸陡,其中每個標簽頁都具有自定義的圖標和標題鹰溜,并在選定標簽頁時顯示對應(yīng)的內(nèi)容視圖。
NavigationLink組件:用于在導(dǎo)航視圖中創(chuàng)建可點擊的鏈接
示例1:NavigationLink(destination: DetailView()) { Text("Go to Detail View") }
丁恭,創(chuàng)建一個可點擊的鏈接曹动,單擊后將導(dǎo)航到名為“DetailView”的目標視圖。
示例2:ForEach(items) { item in NavigationLink(destination: ItemDetailView(item: item)) { Text(item.name) } }
牲览,創(chuàng)建一個帶有多個鏈接的列表視圖墓陈,每個鏈接都導(dǎo)航到一個名為“ItemDetailView”的目標視圖,該視圖顯示有關(guān)該項的詳細信息第献。
Picker:一個視圖贡必,用于在一個列表中顯示一組選項,并允許用戶選擇其中一個選項庸毫。
示例1:Picker("Fruit", selection: $selectedFruit) { ForEach(fruits, id: .self) { Text($0) } }仔拟,創(chuàng)建一個Picker,用于在一個水果列表中選擇一個選項飒赃,并將選擇的選項綁定到名稱為“selectedFruit”的綁定變量中利花。 示例2:Picker(selection: $selectedColor, label: Text("Color")) { ForEach(colors, id: .self) { Text($0) } }.pickerStyle(.segmented)
,創(chuàng)建一個Picker载佳,用于在一組顏色中選擇一個選項炒事,并將選擇的選項綁定到名稱為“selectedColor”的綁定變量中。使用.segmented樣式使Picker的外觀更改為分段控件樣式蔫慧。
DatePicker組件:用于創(chuàng)建日期選擇器
示例1:DatePicker("Select a date", selection: $selectedDate, displayedComponents: .date)
羡洛,創(chuàng)建一個日期選擇器,用戶可以選擇日期藕漱,該日期將存儲在名為“selectedDate”的綁定變量中欲侮。
示例2:DatePicker("Select a time", selection: $selectedTime, displayedComponents: .hourAndMinute)
,創(chuàng)建一個時間選擇器肋联,用戶可以選擇時間威蕉,該時間將存儲在名為“selectedTime”的綁定變量中。
Stepper組件:用于創(chuàng)建步進器視圖
示例1:Stepper("Value: (value)", value: $value)
橄仍,創(chuàng)建一個步進器視圖韧涨,用戶可以單擊“+”或“-”按鈕來增加或減少值牍戚,該值將存儲在名為“value”的綁定變量中。
示例2:Stepper(onIncrement: { incrementValue() }, onDecrement: { decrementValue() }) { Text("Value: (value)") }
虑粥,創(chuàng)建一個自定義的步進器視圖如孝,當用戶單擊“+”或“-”按鈕時,分別調(diào)用兩個不同的函數(shù)來增加或減少值娩贷,并在視圖中顯示當前值第晰。
ProgressView組件:用于顯示進度條或輪廓視圖
示例1:ProgressView()
,創(chuàng)建一個默認樣式的進度條視圖彬祖。
示例2:ProgressView("Loading...")
茁瘦,創(chuàng)建一個帶有標簽“Loading...”的進度條視圖。
ScrollView組件:用于創(chuàng)建可滾動的視圖
示例1:ScrollView { Text("Scrollable content") }
ColorPicker組件:用于創(chuàng)建顏色選擇器
示例1:ColorPicker("Select a color", selection: $selectedColor)
储笑,創(chuàng)建一個顏色選擇器甜熔,當用戶選擇顏色時,將觸發(fā)綁定變量“selectedColor”的值更改突倍,并在選擇器旁邊顯示標簽“Select a color”腔稀。
示例2:ColorPicker(selection: $selectedColor, supportsOpacity: true)
,創(chuàng)建一個顏色選擇器羽历,支持選擇不透明度焊虏,并且不顯示標簽。
VideoPlayer組件:用于在應(yīng)用程序中播放視頻
示例1:VideoPlayer(player: player)
窄陡,創(chuàng)建一個視頻播放器炕淮,其中“player”是一個包含要播放的視頻的AVPlayer實例拆火。
示例2:VideoPlayer(player: player, controls: .custom(actions: { CustomControls() }))
跳夭,創(chuàng)建一個視頻播放器,自定義播放器控件们镜。
MapView組件:用于在應(yīng)用程序中顯示地圖
示例1:MapView(coordinate: CLLocationCoordinate2D(latitude: 37.3318, longitude: -122.005))
币叹,創(chuàng)建一個地圖視圖,其中心點坐標為經(jīng)度37.3318模狭,緯度-122.005的位置颈抚。
示例2:MapView(coordinateRegion: $region)
,創(chuàng)建一個地圖視圖嚼鹉,其中心點坐標和縮放比例由綁定變量“region”控制贩汉。
Gauge:用于顯示某個值相對于給定范圍的百分比。它可以是一個圓形或者一個半圓形锚赤。
示例1:Gauge(value: progress, in: 0...100)
匹舞。創(chuàng)建一個圓形的Gauge,用于顯示進度百分比线脚,progress是0到100之間的值赐稽,in參數(shù)表示Gauge的范圍叫榕。
示例2:Gauge(value: progress, in: 0...100, label: { Text("(Int(progress))%") })
。創(chuàng)建一個圓形的Gauge姊舵,用于顯示進度百分比晰绎,progress是0到100之間的值,in參數(shù)表示Gauge的范圍括丁。同時荞下,定義一個標簽,用于在Gauge中心顯示進度百分比躏将。
Menu組件:用于創(chuàng)建菜單
示例1:Menu(content: { Text("Menu item 1") Text("Menu item 2") }, label: { Text("Menu") })
锄弱,創(chuàng)建一個菜單,包含兩個菜單項“Menu item 1”和“Menu item 2”祸憋,并在標簽中顯示文本“Menu”会宪。
示例2:Menu(content: { Button("Delete") { delete() } }, trigger: .init(label: { Text("More") }))
,創(chuàng)建一個菜單蚯窥,包含一個按鈕“Delete”掸鹅,單擊后調(diào)用“delete”函數(shù),并在標簽中顯示文本“More”拦赠。
Link組件:用于創(chuàng)建鏈接
示例1:Link("Open SwiftUI documentation", destination: URL(string: "[https://developer.apple.com/documentation/swiftui](https://developer.apple.com/documentation/swiftui)")!)
巍沙,創(chuàng)建一個鏈接,顯示文本“Open SwiftUI documentation”荷鼠,單擊后打開目標URL地址句携。
示例2:Link(destination: URL(string: "[https://developer.apple.com/documentation/swiftui](https://developer.apple.com/documentation/swiftui)")!) { Text("Learn more about SwiftUI") }
,創(chuàng)建一個鏈接允乐,顯示文本“Learn more about SwiftUI”矮嫉,單擊后打開目標URL地址。
ShareLink:一個視圖牍疏,用于共享鏈接或其他內(nèi)容
示例1:Button(action: shareLink) { Text("Share Link") }
, 在一個按鈕中使用ShareLink來觸發(fā)共享視圖蠢笋,并使用shareLink方法來定義共享內(nèi)容。
示例2:ShareLink(destination: URL(string: "[https://www.example.com](https://www.example.com/)")!, label: { Text("Share Link") })
, 使用ShareLink在視圖中顯示一個可共享的鏈接鳞陨,并將該鏈接標記為標簽昨寞。
WebView組件:用于顯示W(wǎng)eb內(nèi)容
示例1:WebView(url: URL(string: "[https://www.apple.com")!),創(chuàng)建一個WebView組件厦滤,加載指定的URL援岩。](https://www.apple.xn--com%22%29%21%29%2Cwebview%2Curl-qr76b28ac6nzm2a6zdy61h77xamo5auv0ms1rcb2uh./)
示例2:WebView(htmlString: "<h1>Hello, World!</h1>")
,創(chuàng)建一個WebView組件掏导,顯示指定的HTML字符串享怀。
Spacer組件:用于占用可用空間
示例1:HStack { Text("Left") Spacer() Text("Right") }
,創(chuàng)建一個水平棧視圖碘菜,左邊是文本“Left”凹蜈,右邊是文本“Right”限寞,使用Spacer()占用中間可用的空間。
示例2:VStack { Text("Top") Spacer() Text("Bottom") }
仰坦,創(chuàng)建一個垂直棧視圖履植,上面是文本“Top”,下面是文本“Bottom”悄晃,使用Spacer()占用中間可用的空間玫霎。
若還有沒想到的組件,請在評論中告訴我妈橄,我繼續(xù)完善