我有一个结构体,看起来像这样:
struct Audio: Hashable, Codable, Identifiable {
let id: Int
let refrenceID: Int
let channels: [Channel]
}
struct Channel: Hashable, Codable {
let audio: String
let panning: Double
let volume: Double
let crossfade: Bool
let random: Bool
let frequency: Int?
let period: Int?
}
Audio
可以包含任意数量的结构体Channel
,但我很难调用和引用它们。我试图在Picker()中将每个Channel作为一个选项卡。
struct AudioAdjust: View {
var audio: Audio //Read in from JSON file
var nChannel = 1
var body: some View {
Picker("Select Channel to Adjust", selection: channels[0]) {
ForEach(channels, id: audio) {
Text(nChannel)
nChannel += nChannel
}
}
.pickerStyle(.segmented)
.padding(.horizontal)
1条答案
按热度按时间nkcskrwz1#
SwiftUI中的
ForEach
不像过程编程中的传统for
循环那样工作。你不应该在循环中做任何像nChannel += nChannel
那样的“工作”。这里的代码还有一些其他问题--选择应该是
@State
,需要迭代数组,等等。以下内容应该可以帮助您入门,但同时也是查看一些SwiftUI教程以了解SwiftUI的一些基础知识的好时机。