gpt4 book ai didi

SwiftUI - 单元格项目消失

转载 作者:行者123 更新时间:2023-12-05 06:23:01 33 4
gpt4 key购买 nike

您可以将其完整复制到 playground 中进行重现。当您启动它时,预览看起来不错,但是当您开始上下滚动时,项目 (HStack) 消失了。我不知道为什么...这是 Apple 错误还是我误解了什么?

  //: A UIKit based Playground for presenting user interface

import UIKit
import PlaygroundSupport
import SwiftUI

struct Cell : View {

var country: String

var body: some View {
VStack() {
Text("OMG").onAppear() { print ("OMG") }
ScrollView(.horizontal) {
HStack() {
Text(country)

}.background(Rectangle().fill(Color.blue))//.frame(height: 195)
}.background(Rectangle().fill(Color.orange))//.frame(height: 205)

}
}
}

struct ContentView: View {

var countries = ["a", "b", "c", "d", "e", "f", "g", "h"]

init() {
UITableView.appearance().showsVerticalScrollIndicator = false
UITableView.appearance().showsHorizontalScrollIndicator = false
}

var body: some View {

GeometryReader() { geometry in
VStack() {
Text("Title")
List(self.countries, id: \.self) { country in

Cell(country: country)

}.environment(\.defaultMinListRowHeight, 340)
}
}
}
}

// Present the view controller in the Live View window
PlaygroundPage.current.liveView = UIHostingController(rootView: ContentView())

最佳答案

根据我的调查,问题在于在 List 中使用 ScrollView(可能是 Apple 的问题)。作为一种解决方法(或替代方法),您可以考虑将 List 替换为 ScrollView,如下所示(您的 ContentView 的主体,您可以在希望具有相似外观的地方手动添加 Divider()):

var body: some View {

GeometryReader() { geometry in
VStack() {
Text("Title")
ScrollView(.vertical) {
ForEach(self.countries, id: \.self) { country in
Cell(country: country)
.frame(height: 340)
}
}
}
}
}

关于SwiftUI - 单元格项目消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58708538/

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