如何调整用户点击选择器时显示的列表的宽度?请注意,我不需要调整选择器本身的宽度 - 只需调整它上面显示的内容。
例如,考虑一个显示可用 iPad 语音的选择器:
ForEach(AVSpeechSynthesisVoice.speechVoices(), id: \.identifier) { voice in
Text("\(Locale.current.localizedString(forIdentifier: voice.language) ?? voice.language) – \(voice.name)").tag(voice)
}
如果点击选择器,您会看到一个包含以下内容的列表:
尽管 iPad 有很多可用的屏幕宽度,但显示的列表非常窄,以至于许多选项都排成两行。我怎样才能调整这个宽度?
代码示例不应换行。任何换行都应该是由代码中的其他内容引起的,可能父视图具有固定宽度,如下所示的代码。
VStack{
ScrollView{
ForEach(AVSpeechSynthesisVoice.speechVoices(), id: \.identifier) { voice in
Text("\(Locale.current.localizedString(forIdentifier: voice.language) ?? voice.language) – \(voice.name)").tag(voice)
.frame(maxWidth: /*@START_MENU_TOKEN@*/.infinity/*@END_MENU_TOKEN@*/, alignment: .leading)
.padding(.horizontal)
.padding(.top)
}
}
}.frame(width: 200)
我在下面编写了相同的代码,但没有固定宽度。
VStack{ 滚动视图{ ForEach(AVSpeechSynthesisVoice.speechVoices(), id: .identifier) { 语音输入
Text("\(Locale.current.localizedString(forIdentifier: voice.language) ?? voice.language) – \(voice.name)").tag(voice)
.frame(maxWidth: /*@START_MENU_TOKEN@*/.infinity/*@END_MENU_TOKEN@*/, alignment: .leading)
.padding(.horizontal)
.padding(.top)
}
}
}