ViewBuilder
一個(gè)自定義參數(shù)屬性,用于從閉包構(gòu)造視圖。
struct ViewBuilder
總覽
您通常將其用作產(chǎn)生子視圖的閉合參數(shù)的參數(shù)屬性咙冗,從而允許這些閉合提供多個(gè)子視圖。例如漂彤,以下函數(shù)接受通過(guò)視圖構(gòu)建器生成一個(gè)或多個(gè)視圖的閉包雾消。
func contextMenu<MenuItems : View>(
@ViewBuilder menuItems: () -> MenuItems
) -> some View
此功能的客戶端可以使用多語(yǔ)句閉包來(lái)提供多個(gè)子視圖,如以下示例所示:
myView.contextMenu {
Text("Cut")
Text("Copy")
Text("Paste")
if isSymbol {
Text("Jump to Definition")
}
}
主題
建筑模塊
1挫望、static func buildBlock() -> EmptyView
從不包含任何語(yǔ)句的塊構(gòu)建一個(gè)空視圖立润。
2、static func buildBlock<Content>(Content) -> Content
將未經(jīng)修改的單個(gè)視圖傳遞為子視圖媳板。
3桑腮、static func buildBlock<C0, C1>(C0, C1) -> TupleView<(C0, C1)>
4、static func buildBlock<C0, C1, C2>(C0, C1, C2) -> TupleView<(C0, C1, C2)>
5蛉幸、static func buildBlock<C0, C1, C2, C3>(C0, C1, C2, C3) -> TupleView<(C0, C1, C2, C3)>
6破讨、static func buildBlock<C0, C1, C2, C3, C4>(C0, C1, C2, C3, C4) -> TupleView<(C0, C1, C2, C3, C4)>
7、static func buildBlock<C0, C1, C2, C3, C4, C5>(C0, C1, C2, C3, C4, C5) -> TupleView<(C0, C1, C2, C3, C4, C5)>
8奕纫、static func buildBlock<C0, C1, C2, C3, C4, C5, C6>(C0, C1, C2, C3, C4, C5, C6) -> TupleView<(C0, C1, C2, C3, C4, C5, C6)>
9提陶、static func buildBlock<C0, C1, C2, C3, C4, C5, C6, C7>(C0, C1, C2, C3, C4, C5, C6, C7) -> TupleView<(C0, C1, C2, C3, C4, C5, C6, C7)>
10、static func buildBlock<C0, C1, C2, C3, C4, C5, C6, C7, C8>(C0, C1, C2, C3, C4, C5, C6, C7, C8) -> TupleView<(C0, C1, C2, C3, C4, C5, C6, C7, C8)>
11匹层、static func buildBlock<C0, C1, C2, C3, C4, C5, C6, C7, C8, C9>(C0, C1, C2, C3, C4, C5, C6, C7, C8, C9) -> TupleView<(C0, C1, C2, C3, C4, C5, C6, C7, C8, C9)>
12隙笆、static func buildEither<TrueContent, FalseContent>(first: TrueContent) -> _ConditionalContent<TrueContent, FalseContent>
為多語(yǔ)句閉包中的“ if”語(yǔ)句提供支持,從而為“ then”分支生成ConditionalContent。
13撑柔、static func buildEither<TrueContent, FalseContent>(second: FalseContent) -> _ConditionalContent<TrueContent, FalseContent>
為多語(yǔ)句閉包中的“ if-else”語(yǔ)句提供支持煤率,從而為“ else”分支生成ConditionalContent。
14乏冀、static func buildIf<Content>(Content?) -> Content?
提供對(duì)多語(yǔ)句閉包中“ if”語(yǔ)句的支持蝶糯,從而生成一個(gè)可選視圖,該視圖僅在條件評(píng)估為時(shí)可見(jiàn)true辆沦。
實(shí)施自定義視圖
1昼捍、var body: Self.Body
視圖的內(nèi)容和行為。
需要肢扯。 提供了默認(rèn)實(shí)現(xiàn)妒茬。
2、associatedtype Body : View
表示此視圖主體的視圖類型蔚晨。
需要乍钻。
實(shí)戰(zhàn)代碼
SwiftUI 代碼如何兼容iOS 13 和 iOS 14 (教程含源碼)
推薦
基礎(chǔ)文章推薦
經(jīng)典教程推薦
- 更新近百篇SwiftUI教程《SwiftUI2020教程》
- 幫您突破數(shù)據(jù)存儲(chǔ)難關(guān)《SwiftUI vs CoreData數(shù)據(jù)存儲(chǔ)解決方案》
上新
技術(shù)源碼推薦
推薦文章
CoreData篇
- SwiftUI數(shù)據(jù)存儲(chǔ)之做個(gè)筆記App 新增與查詢(CoreData)
- SwiftUI進(jìn)階之存儲(chǔ)用戶狀態(tài)實(shí)現(xiàn)登錄與登出
- SwiftUI 數(shù)據(jù)之List顯示Sqlite數(shù)據(jù)庫(kù)內(nèi)容(2020年教程)
Combine篇
TextField篇
- 《SwiftUI 一篇文章全面掌握TextField文本框 (教程和全部源碼)》
- 《SwiftUI實(shí)戰(zhàn)之TextField風(fēng)格自定義與formatters》
- 《SwiftUI實(shí)戰(zhàn)之TextField如何給鍵盤增加個(gè)返回按鈕(隱藏鍵盤)》
- 《SwiftUI 當(dāng)鍵盤出現(xiàn)時(shí)避免TextField被遮擋自動(dòng)向上移動(dòng)》
- 《SwiftUI實(shí)戰(zhàn)之TextField如何給鍵盤增加個(gè)返回按鈕(隱藏鍵盤)》
JSON文件篇
一篇文章系列
- SwiftUI一篇文章全面掌握List(教程和源碼)
- 《SwiftUI 一篇文章全面掌握TextField文本框 (教程和全部源碼)》
- SwiftUI一篇文章全面掌握Picker,解決數(shù)據(jù)選擇(教程和源碼)
- SwiftUI一篇文章全面掌握Form(教程和源碼)
- SwiftUI Color 顏色一篇文章全解決
技術(shù)交流
QQ:3365059189
SwiftUI技術(shù)交流QQ群:518696470
- 請(qǐng)關(guān)注我的專欄icloudend, SwiftUI教程與源碼
http://www.reibang.com/c/7b3e3b671970