gpt4 book ai didi

swift - 如何在 SwiftUI 中列出一系列 TabView 项目?

转载 作者:行者123 更新时间:2023-12-04 12:20:59 30 4
gpt4 key购买 nike

我有一个项目,其中部分 ContentView选择不同的选项卡时应该会更改。我有以下结构和 TabView 项目的数组:

struct TabItem: Identifiable {
var id = UUID()
var title: Text
var image: Image
var tag: Int
}

let tabData = [
TabItem(title: Text("Tab 1"), image: Image(systemName: "1"), tag: 1),
TabItem(title: Text("Tab 2"), image: Image(systemName: "2"), tag: 2),
TabItem(title: Text("Tab 3"), image: Image(systemName: "3"), tag: 3),
TabItem(title: Text("Tab 4"), image: Image(systemName: "4"), tag: 4)
]

我试图在 TabView 中列出这些但不知道该怎么做。尝试了以下方法,但到目前为止还没有运气。

TabView {
ContentView()
.tabItem {
// code goes here...
}.tag // tag goes here
}

我知道我也可以使用 TabView(selection: )@State变量,但我也不确定如何实现。

谢谢!

最佳答案

TabView 可以显示如下(属性 selectedTab 跟踪用户选择的选项卡):

import SwiftUI

struct ContentView: View {
let tabData = [
TabItem(title: Text("Tab 1"), image: Image(systemName: "1"), tag: 1),
TabItem(title: Text("Tab 2"), image: Image(systemName: "2"), tag: 2),
TabItem(title: Text("Tab 3"), image: Image(systemName: "3"), tag: 3),
TabItem(title: Text("Tab 4"), image: Image(systemName: "4"), tag: 4)
]

@State private var selectedTab = 0

var body: some View {

TabView(selection: $selectedTab) {

ForEach(tabData) { tabItem in
Text("Screen: \(tabItem.tag)")
.tabItem {
tabItem.title
tabItem.image
}.tag(tabItem.tag)
}
}

}
}

struct TabItem: Identifiable {
var id = UUID()
var title: Text
var image: Image
var tag: Int
}

关于swift - 如何在 SwiftUI 中列出一系列 TabView 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58891373/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com