远程图像使用 List 正确加载,但在使用带有嵌入式 VStack 的 ScrollView 和 SwiftUI 时不加载

Posted

技术标签:

【中文标题】远程图像使用 List 正确加载,但在使用带有嵌入式 VStack 的 ScrollView 和 SwiftUI 时不加载【英文标题】:Remote Image loads correctly using List, but does not load when using ScrollView with embeded VStack with SwitUI 【发布时间】:2019-06-25 16:46:14 【问题描述】:

我正在获取List 中的远程图像。这可以正常工作。 但是,如果我将代码放在 ScrollView 中,它就不起作用

ScrollView 
   HStack 

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

评论无效的部分,取消评论有效的部分以查看差异。 List 有效,但 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)
    

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

    带有注释的框架代码 - 它不起作用 框架代码未注释 - 它确实有效

可能是 SwiftUI 错误?

【问题讨论】:

项目中的两个示例都对我有用。 (注意:我确实删除了所有的 cmets,因为它们在我打开的版本中似乎格式不正确) 我不明白这是怎么回事。它根本不适合我。我正在使用 XCode11-Beta-1 但是说真的,反对票是怎么回事? 我无缘无故地获得了更多的反对票...... *** 有机器人吗?有没有办法知道谁投了反对票?为什么他们不能升级用户必须为不赞成票留下理由?这是愚蠢的。我想我会删除这个问题。 【参考方案1】:

这几乎可以肯定是向 Apple 报告的 SwiftUI 错误,应该在某个时候修复。 .frame 修饰符应该没有你看到的效果。

【讨论】:

在 beta3 中修复的问题

以上是关于远程图像使用 List 正确加载,但在使用带有嵌入式 VStack 的 ScrollView 和 SwiftUI 时不加载的主要内容,如果未能解决你的问题,请参考以下文章

图像在 Chrome 选项卡上加载正常,但在 React 代码中返回 403

图像大小在 JAR 中返回 -1,但在 IDE 中返回正确大小。通过 Toolkit 加载的图像....createImage(url)

iOS为带有嵌入推文的html字符串计算正确的WKWebview高度

带有图像的 flexbox 在 Safari 中无法正确查看

Gatsby - 使用 createRemoteFileNode 获取远程图像

存储 WPF 图像资源