更改 ScrollView SwiftUI 的背景颜色

Posted

技术标签:

【中文标题】更改 ScrollView SwiftUI 的背景颜色【英文标题】:Change Background Color of ScrollView SwiftUI 【发布时间】:2021-07-25 05:43:24 【问题描述】:

我是开发 ios 应用程序的新手,我的登录页面底部有多余的空白,这取决于我在屏幕上的图像大小。有人告诉我应该更改 ScrollView 的背景颜色并将视图的背景设置为清晰。我不确定如何更改 ScrollView 的背景颜色。我的代码基本上看起来像这样,为了便于阅读,删除了一些内容:

var body: some View 
    ScrollView 
        //if login.isLoggedIn 
        MainView()
        // else 
        VStack() 
            
        
        
        .background(LinearGradient(gradient: Gradient(colors: [Color.lightblue), Color(.blue)]), startPoint: .top, endPoint: .bottom))
            .edgesIgnoringSafeArea(.all)
        
        

//

谁能告诉我如何更改背景颜色?我希望背景颜色是上面的线性渐变。如果没有,你能在 UIScrollView 中展示如何做到这一点吗?

【问题讨论】:

您确定您的代码可以运行吗?它似乎有一堆错误,如Colorblue)CColor(blue)CColor 是来自导入库的类型吗?另外你为什么在两个地方都传递blue颜色?它应该是.blue,除非你在代码的其他地方定义了let blue: CGColor = .blue @ParthTamane 是的,它运行。我只是打错了。蓝色是两种不同的色调,实际上是蓝色盒子/彩色盒子。我忘记他们叫什么了。 【参考方案1】:

尝试将背景颜色设置移到下一行。 this post 也可能会有所帮助。

struct ContentView: View 
    var body: some View 
        ScrollView 
            //if login.isLoggedIn 
            MainView()
            // else 
            VStack() 
                
            
        .background(
            LinearGradient(gradient: Gradient(colors: [Color(.lightblue), Color(.blue)]), startPoint: .top, endPoint: .bottom)
        ).edgesIgnoringSafeArea(.all)
    


...

// Extension for custom colour lightBlue
extension UIColor 
    static let lightBlue = UIColor(red: 0.2, green: 0.6, blue: 0.8, alpha: 1)

【讨论】:

我不小心试图编辑你的答案而不是我原来的帖子。

以上是关于更改 ScrollView SwiftUI 的背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

水平 ScrollView 在 SwiftUI 中在更改时垂直反弹

SwiftUI - 如何在运行时更改内部内容后获取 ScrollView 内容高度

如何向 swiftUI ScrollView 指示内容大小已更改?

SwiftUI - 淡出 ScrollView

SwiftUI NavigationView 背景颜色

在 SwiftUI 中放置在导航堆栈中时滚动视图的背景颜色