是否可以像使用一样在单独的 var 中提取工具栏内容@ViewBuilder?
我想提取它并设置 .toolBar(content: myToolBarContent)
var body: some View {
NavigationView {
List {
}
.toolbar(content: {
ToolbarItem(placement: .principal) {
Text("Hi")
}
ToolbarItem(placement: .navigationBarTrailing) {
Text("Ho")
}
})
}
}
Run Code Online (Sandbox Code Playgroud)
Raj*_*han 19
如果您想将工具栏与主体分开,则需要为工具栏内容创建一个单独的结构。这是一个可能的演示。
struct ContentView: View {
var body: some View {
NavigationView {
List {
}
.toolbar{MyToolBarContent()}
}
}
struct MyToolBarContent: ToolbarContent {
var body: some ToolbarContent {
ToolbarItem(placement: .principal) {
Text("Hi")
}
ToolbarItem(placement: .navigationBarTrailing) {
Text("Ho")
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
您实际上不需要创建另一个结构 - 相反,您可以使用@ToolbarContentBuilder. 它@ViewBuilder相当于ToolbarContent:
struct ContentView: View {
var body: some View {
NavigationView {
List {}
.toolbar(content: myToolBarContent)
}
}
@ToolbarContentBuilder
func myToolBarContent() -> some ToolbarContent {
ToolbarItem(placement: .principal) {
Text("Hi")
}
ToolbarItem(placement: .navigationBarTrailing) {
Text("Ho")
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
267 次 |
| 最近记录: |