【问题标题】:How to set tableview height according to its content-size in SwiftUI?如何根据 SwiftUI 中的内容大小设置 tableview 高度?
【发布时间】:2020-04-02 12:12:50
【问题描述】:

我需要在 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)
    }

【问题讨论】:

  • 行高是固定的?
  • @RohitMakwana 没有。它基于内容
  • 您的请求正是 VStack 所做的。

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


【解决方案1】:

您可以通过删除 List 并将其换成 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)

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-03
    • 2016-03-13
    • 2022-09-27
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多