gpt4 book ai didi

swift - SwiftUI VStack和列表中其他 View 压缩的 View

转载 作者:行者123 更新时间:2023-12-04 22:26:50 26 4
gpt4 key购买 nike

在我的SwiftUI应用程序中,我试图实现类似于以下内容的UI:

我为类别1和类别2添加了两行。结果如下所示:

NavigationView {
VStack(alignment: .leading) {
CategoryRow(...)
CategoryRow(...)
Spacer()
}
.navigationBarTitle(Text("Featured"))
}

现在,当添加第三类的 View (带有图像的 VStack)时,将发生以下情况:

在我用 Spacer()替换 VStack之后,发生了这种情况:
VStack(alignment: .leading) {
Text("Rivers")
.font(.headline)
ForEach(self.categories["Rivers"]!.identified(by: \.self)) { landmark in
landmark.image(forSize: 200)
}
}

我的 CategoryRow实现如下:
VStack(alignment: .leading) {
Text(title)
.font(.headline)
ScrollView {
HStack {
ForEach(landmarks) { landmark in
CategoryItem(landmark: landmark, isRounded: self.isRounded)
}
}
}
}



似乎 View 已压缩。我找不到任何抗压缩性或包含优先级修饰符的内容来解决此问题。
我还尝试在 .fixedSize()上使用 .frame(width:height:)CategoryRow

如何防止压缩这些 View ?

更新资料

我尝试将整个外部堆栈 View 嵌入滚动 View 中:
NavigationView {
ScrollView { // also tried List
VStack(alignment: .leading) {
CategoryRow(...)
CategoryRow(...)
ForEach(...) { landmark in
landmark.image(forSize: 200)
}
}
.navigationBarTitle(Text("Featured"))
}
}

...结果更糟:

最佳答案

您可能会阻止使用以下命令压缩VStack中的 View

  .fixedSize(horizontal: false, vertical: true)
例如:
我有以下VStack:
VStack(alignment: .leading){
ForEach(group.items) {
FeedCell(item: $0)
}
}
哪个呈现压缩的Text()

当我添加.fixedSize(水平:false,垂直:true)
它不再压缩
VStack(alignment: .leading){
ForEach(group.items) {
FeedCell(item: $0)
.fixedSize(horizontal: false, vertical: true)
}
}

关于swift - SwiftUI VStack和列表中其他 View 压缩的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56507497/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com