如何在SwiftUI中根据其内容大小设置tableview的高度?

时间:2019-12-09 11:37:47

标签: uitableview swiftui macos-catalina swift5.1 xcode11.1

我需要在tableView中禁用滚动并根据其内容增加高度。以下是我在swiftUI中用于表格视图的代码,请向我提供指导

var body: some View {
        List{

         ForEach(testData){ data in
                    VStack(alignment: .leading){
                                   HStack{
                                    Image(data.name)
                                       .resizable()
                                       .frame(width: 50, height: 50, alignment: .leading)

                                    VStack(alignment: .leading){
                                        Text(data.name)
                                               .bold()
                                        Text(data.bio)
                                               .font(.subheadline)
                                       }
                                   }
                               }
            }
        }
        .offset(y:-60)
        .padding(8)
    }

1 个答案:

答案 0 :(得分:0)

您可以通过删除列表并将其交换为VStack来执行此操作。然后,您将在每个VStack元素的末尾使用分隔符,并添加水平填充,这将产生与列表相同的效果,但使其不可滚动,并且将根据元素调整高度。

VStack{
ForEach(testData){ data in
 VStack(alignment: .leading){
        HStack{
        Image(data.name)
            .resizable()
            .frame(width: 50, height: 50, alignment: .leading)

         VStack(alignment: .leading){
             Text(data.name)
                    .bold()
             Text(data.bio)
                    .font(.subheadline)
            }
        }
    }
 }
Divider()
.padding(.horizontal)
}
.offset(y:-60)
.padding(8)

}