使用List可以正确加载Remote Image,但是将ScrollView与带有SwitUI的嵌入式VStack一起使用时,不会加载远程图像

时间:2019-06-25 16:46:14

标签: swift swiftui

我正在List内获取远程图像。这可以正常工作。 但是,如果我将代码放在ScrollView中,则无法正常工作

ScrollView {
   HStack {

我提供了示例XCode 11-Beta SwiftUI project here。只需下载并运行。下载完成后,查看ContentView.swift文件。 (参见图片)

enter image description here

注释不起作用的部分,并取消注释起作用的部分以查看区别。列表有效,但是scrollView失败。

知道为什么吗?

[更新]: 我现在将struct BuggedView上的代码更改为以下代码:

struct BuggedView : View {
    @ObjectBinding var viewModel = EventController.ViewModel()
    var body: some View {
        ZStack(alignment: .top) {

            GeometryReader() { x in
                ScrollView {
                    ForEach(0..<self.viewModel.events.count) { index in
                        EventComponent(event: self.viewModel.events[index]).padding(.top).frame(width: x.size.width)
                    }
                }
            }

            List {
                Spacer().frame(height: 183)
                ForEach(0..<self.viewModel.events.count) { index in
                    EventComponent(event: self.viewModel.events[index]).padding(.top)
                }
            }.offset(x: 200, y: 0)
        }//.frame(width:400, height: 400)
    }
}

进行此更改后,您可以在屏幕上同时看到图像的两个版本。在更新的代码中,请注意我已注释掉一些框架代码。好吧,这是结果

  1. 注释了框架代码-不起作用
  2. 未注释框架代码-确实有效

也许是SwiftUI错误?

1 个答案:

答案 0 :(得分:1)

几乎可以肯定,这是一个应向Apple报告的SwiftUI错误,应在某个时间点修复。 .frame修饰符应该没有效果,如您所见。