相关疑难解决方法(0)

SwiftUI iOS14 - NavigationView + List - 不会填充空间

自 iOS 14 更新以来,我遇到了 NavigationView 中的 List 问题。

这是代码的简单细分 - 我已经将所有未显示问题的内容都进行了条带化

struct ContentView: View {
    
    var views = ["Line 1", "Line 2", "Line 3"]
    
    var body: some View {
        
        NavigationView {
            
            VStack {
                
                List {
                    
                    ForEach(views, id: \.self) { view in
                       
                        VStack {
                        Text("\(view)")
                        }
                        .background(Color.red)
                        
                    }
                    
                }
                
            }
            
        }
        
    }
}
Run Code Online (Sandbox Code Playgroud)

这会产生以下结果:

导航视图中的列表

我无法弄清楚为什么列表会像那样悬停在导航视图的中心。据我所知,这应该会生成一个占据所有可用空间的列表视图(导航栏所在的顶部除外)。

事实上,当在 iOS 13.5 上运行时,我得到的结果如下图所示:

在导航视图 2 中列出

我已经通读了文档,但无法弄清楚为什么会突然发生这种行为。

任何帮助将不胜感激。

谢谢

swift swiftui swiftui-list ios14 swiftui-navigationview

26
推荐指数
1
解决办法
3595
查看次数

如何在具有正确行高的情况下在列表的提取 RowView 中使用 GeometryReader?

我需要使用 GeometryReader 根据屏幕宽度调整视图大小。这是我重构之前的情况。(放大图片以查看代码并并排预览)。

在此输入图像描述 代码在这里:

import SwiftUI

struct WorkingView: View {
    var data = ["Hit the Edit button to reorder", "Practice Coding", "Grocery shopping", "Get tickets", "Clean house", "Do laundry", "Cook dinner", "Paint room"]
    
    var body: some View {
        NavigationView {
            GeometryReader { geometry in
                List {
                    ForEach(data, id: \.self) { content in
                        HStack {
                            Text(String(content.count))
                                .frame(width: geometry.size.width * 0.10)
                            VStack {
                                Text(content)
                                    .underline()
                                Text(content)
                                    .bold()
                                Text(content)
                                    .foregroundColor(.yellow)
                            }
                        }
                    }
                }
                .navigationTitle(Text("Home"))
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我将行重构为提取的视图后得到的结果。现在,当在这里使用 GeometryReader 时,行高变得混乱。

在此输入图像描述

import …
Run Code Online (Sandbox Code Playgroud)

ios swiftui

1
推荐指数
1
解决办法
2464
查看次数