ios - 在 ScrollView SwiftUI 中添加时列表隐藏

标签 ios list scrollview swiftui

我在 ScorllView 中添加了一个 List,但是在将其添加到 ScrollView 之后它没有显示在 Canvas 中

这是我的代码

struct ContentView: View {
    var body: some View {
        ScrollView {
            VStack {
                Text("My List")
                    .font(.largeTitle)
                    .fontWeight(.bold)

                List(0 ..< 5) { item in
                    Text("Hello World")
                }
            }
        }
    }
}

sw

最佳答案

问题:

那是因为 List 从其父级 View 推断它的大小。因此,当您将其嵌入具有动态高度的类似 VStack 的内容时,它无法正确推断其大小。

解决方案:

您在这里有一些选择:

1。调整 List 的大小以自动匹配其内容(完美)

您可以直接使用ForEach而不是使用List,这样您就可以更好地控制内容的大小

ForEach(0 ..< 5) { item in
    VStack(alignment: .leading) {
        Text("Hello World").frame(height: 42)
        Divider()
    }.padding(.horizontal, 8)
}

您可以根据需要更改所有尺寸和间距


2。调整 List 的大小以手动匹配其内容(好但不完美)

通过在 List 上设置 .frame() 修饰符,为它提供一个静态框架,就像您在 UIKit 中所做的那样:

List(0 ..< 5) { item in
    Text("Hello World")
}.frame(height: 224)

您可以使用 GeometryReader 找到父级的确切大小并将其应用于 List


3。只需显示 List(不好但有效)

添加 .scaledToFill() 修饰符到 List

关于ios - 在 ScrollView SwiftUI 中添加时列表隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58959475/

相关文章:

iOS - 如何在从远程服务流式传输时在 UITextView 中开始新行

ios - swift 3 和 Alamofire : Extremely Slow Build Times

ios - 我如何将 uipagecontrol 用于带有操作的页面?

css - 菜单列表项 : Full width (border-bottom)?

list - 将输入流转换为对象列表

java - 使用另一个列表中的值修改列表中的对象的最佳方法

android - 在 Recyclerview 中拖动项目时自动滚动滚动条

android - 如何在 Android 中使用 ScrollView?

android - 如何在 ScrollView 顶部添加 float 操作按钮

iphone - 模态视图在 ios 6.0 中调整大小,工具栏位于 View 中间