提问人:Peter 提问时间:10/18/2023 最后编辑:HangarRashPeter 更新时间:10/18/2023 访问量:88
SwiftUI 标题/标题文本背景颜色屏幕宽
SwiftUI Header/Title Text Background Color Screen Wide
问:
我想为“Sebastian's Favorite Stuff”设置背景颜色以涵盖整个区域。目前它看起来像这样,我想覆盖空白。
我的代码如下:
var body: some View {
VStack{
GridRow{
Text("SEBASTIAN'S FAVORITE STUFF")
.lineLimit(1)
.padding(10)
.font(.system(size: 500))
.minimumScaleFactor(0.01)
.colorInvert()
}
.background(Color(red: 0.18 , green: 0.59 , blue: 0.65 ))
HStack{
ScrollView{
Grid{
我需要调整什么才能填充区域而不仅仅是文本背景?
答:
1赞
zmfrew
10/18/2023
#1
如果将 作为最后一个修饰符链接,则背景颜色应延伸到左边缘和右边缘。.frame(maxWidth: .infinity)
Text
1赞
Benzy Neez
10/18/2023
#2
A 应是 A 的子项。所以在这种情况下,我不会使用 a,而只是单独使用。GridRow
Grid
GridRow
Text
然后,您需要做的就是强制文本使用全宽。由于背景将触及安全区域的边缘,因此它也会延伸到安全区域。这是因为您正在使用(带圆括号)。的缺省参数是 。background(_:ignoresSafeAreaEdges:)
ignoresSafeAreaEdges
Edge.Set.all
喜欢这个:
VStack{
Text("SEBASTIAN'S FAVORITE STUFF") // not nested in a GridRow any more
.lineLimit(1)
.padding(10)
.font(.system(size: 500))
.minimumScaleFactor(0.01)
.colorInvert()
.frame(maxWidth: .infinity) // added
.background(Color(red: 0.18 , green: 0.59 , blue: 0.65 ))
HStack {
ScrollView {
Grid{
如果你想填满整个屏幕背景,那么你可以将背景向上移动一个级别,然后把它放在后面。上不再需要 。两者都不需要,因为会强制填充所有可用空间(a 是贪婪的)。VStack
maxWidth
Text
VStack
ScrollView
VStack
ScrollView
VStack{
Text("SEBASTIAN'S FAVORITE STUFF")
.lineLimit(1)
.padding(10)
.font(.system(size: 500))
.minimumScaleFactor(0.01)
.colorInvert()
HStack {
// as before
}
}
.background(Color(red: 0.18 , green: 0.59 , blue: 0.65 ))
如果这仍然留下一些空白,那么你需要看看下一个父母,依此类推。
评论
ZStack { Color(red: 0.18, green: 0.59, blue: 0.65).ignoresSafeArea() VStack { ...