ios swift swiftui
我试图在Swift UI中创建一个下拉列表。文章的大部分建议使用覆盖来创建相同的内容。尝试了下面的一些示例代码,但是当下拉菜单出现时,它会出现在下一个内容的下面。如图所示,如何使其看起来像正常的下拉列表?我观察到,当我们添加HStack时,它会出现在其他视图的顶部,这是意料之中的,但当我尝试添加HStack时,它会出现在UI后面。
您可以使用GroupBox和DisclosureGroup的组合来实现所需的功能,您可以根据需要修改以下代码
import SwiftUI
struct ContentView: View {
//MARK: - PROPERTIES
let nutrients: [String] = ["Energy", "Sugar", "Fat", "Protein", "Vitamins", "Minerals"]
//MARK: - BODY
var body: some View{
GroupBox(){
DisclosureGroup("Nutritional value per 100g") {
ForEach(0..<nutrients.count, id: \.self){ index in
Divider()
.padding(.vertical, 2)
HStack{
Group{
Image(systemName: "info.circle")
Text(nutrients[index])
}//: GROUP
.foregroundColor(.gray)
.font(.system(.body).bold())
Spacer(minLength: 25)
Text("1g")
.multilineTextAlignment(.trailing)
}//: HSTACK
}//: LOOP
}//: DISCLOSURE
}//: BOX
}
}
//MARK: - PREVIEW
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}