带有 ScrollView 外观的 SwiftUI 错误

Posted

技术标签:

【中文标题】带有 ScrollView 外观的 SwiftUI 错误【英文标题】:SwiftUI bug with ScrollView appearance to the scene 【发布时间】:2020-05-07 15:53:57 【问题描述】:

我在 SwiftUI 中遇到问题。我创建了 ScollView 并发布到一些视图中。 (新闻文章)。当我启动应用程序时 - ScrollView 和里面的内容以对角线的方式出现,就像动画一样。但是我需要启动应用程序并获取其中包含视图的静态 ScrollView,而无需任何动作。

当我打开带有 ScrollView 和 Text Blocks 的工作表视图时,也发生了同样的问题。它也像 dioganaly 方式一样出现前 0.3 秒。但是我怎样才能达到静态?谢谢大家)

我使用工作表控制器的地方(也是 ScrollView 中的这个块)

ScrollView
   ArticlePreView(image: "one", category: "Category", heading: "Header", author: "some text").onTapGesture 
                        self.showingDetail.toggle()
                    .sheet(isPresented: $showingDetail) 
                        Home()
                    


Image to understand Video of problem

这是我的工作表控制器的地方

ScrollView() 

            VStack 

                HStack 

                    Text("Soem long title")
                        .font(.title)
                        .fontWeight(.bold)

                    Spacer()


                    Button(action: 

                    ) 

                        HStack 


                            Image(systemName: "heart.fill")
                                .foregroundColor(Color.gray)


                        

                            .padding()
                    
                        .background(
                            Circle()
                                .fill(Color.neuBackground)
                        )
                        .shadow(color: .dropShadow, radius: 15, x: 10, y: 10)
                        .shadow(color: .dropLight, radius: 15, x: -10, y: -10)


                
                    .padding(.horizontal, 35)
                    .padding(.top, 25)


                Text("long text")
                    .multilineTextAlignment(.leading)
                    .foregroundColor(.gray)
                    .padding(.horizontal, 30)
                    .padding(.top, 20)

                Text("long text")
                    .multilineTextAlignment(.leading)
                    .foregroundColor(.gray)
                    .padding(.horizontal, 30)
                    .padding(.top, 20)

                Text("long text")
                    .multilineTextAlignment(.leading)
                    .foregroundColor(.gray)
                    .padding(.horizontal, 30)
                    .padding(.top, 20)

                Text("long text")
                    .multilineTextAlignment(.leading)
                    .foregroundColor(.gray)
                    .padding(.horizontal, 30)
                    .padding(.top, 20)

                Spacer(minLength: 50)


            
            .frame(width: UIScreen.main.bounds.size.width)

【问题讨论】:

没有人知道如何解决?我在所有项目中的 ScollView 中都有这个错误! 【参考方案1】:

使用

修复
.frame(width: UIScreen.main.bounds.size.width)
.fixedSize()

SwiftUI 不是自适应的

【讨论】:

以上是关于带有 ScrollView 外观的 SwiftUI 错误的主要内容,如果未能解决你的问题,请参考以下文章

带有内容框架更新关闭的 SwiftUI ScrollView

带有渐变的SwiftUI ScrollView文本

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

ScrollView 中的初始 SwiftUI 动画

如何在 SwiftUI 的 ScrollView 中制作动画? SwiftUI 中的手风琴风格动画

SwiftUI:在 ScrollView 或 List 中时,PageTabViewStyle() 新损坏?