更改 ScrollView SwiftUI 的背景颜色
Posted
技术标签:
【中文标题】更改 ScrollView SwiftUI 的背景颜色【英文标题】:Change Background Color of ScrollView SwiftUI 【发布时间】:2021-05-02 15:50:27 【问题描述】:我是开发 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 内容高度