在SwiftUI框架的内部填充?
是否可以使用SwiftUI在该屏幕截图中填充左右文本?如果这是HTML,我会在CSS中使用在SwiftUI框架的内部填充?,swiftui,Swiftui,是否可以使用SwiftUI在该屏幕截图中填充左右文本?如果这是HTML,我会在CSS中使用左填充和右填充。唉,SwiftUI需要一种不同的思维方式 现在我已经有了这两个很好的框架,我希望它们按照我的方式工作,那么在框架内移动文本的技术是什么呢。如何将“左”稍微向右移动,使其远离左边缘,并为其提供一些良好的视觉空间?同样的技巧也可以反作用于“正确”的文本 在SwiftUI中,修饰符的顺序很重要。见: 在下面的代码中,首先将.background(Color.yellow)应用于整个Geo
左填充
和右填充
。唉,SwiftUI需要一种不同的思维方式
现在我已经有了这两个很好的框架,我希望它们按照我的方式工作,那么在框架内移动文本的技术是什么呢。如何将“左”稍微向右移动,使其远离左边缘,并为其提供一些良好的视觉空间?同样的技巧也可以反作用于“正确”的文本
在SwiftUI中,修饰符的顺序很重要。见:
在下面的代码中,首先将
.background(Color.yellow)
应用于整个GeometryReader
。这意味着填充在文本(“左”)
之外
您还需要在文本
视图之后添加填充
:
GeometryReader { geometry in
HStack(spacing: 0) {
Text("Left")
.padding(.leading) // add here
.frame(width: geometry.size.width * 0.33, height: 50, alignment: .leading)
.background(Color.yellow)
Text("Right")
.padding(.trailing) // add here
.frame(width: geometry.size.width * 0.67, height: 50, alignment: .trailing)
.background(Color.orange)
}
}
.padding()
请注意,您可以指定填充方向(例如.padding(.training)
)以及偏移量:
还请注意,您需要在
帧之前添加填充-否则视图的总宽度将为:
0.33 * GeometryReader width + 0.67 * GeometryReader width + width of `.padding(.leading)` + width of `.padding(.trailing)`
它将大于GeometryReader
返回的宽度,类似于文本(“左”)。填充(.leading,20)
(未测试)。
GeometryReader { geometry in
HStack(spacing: 0) {
Text("Left")
.padding(.leading) // add here
.frame(width: geometry.size.width * 0.33, height: 50, alignment: .leading)
.background(Color.yellow)
Text("Right")
.padding(.trailing) // add here
.frame(width: geometry.size.width * 0.67, height: 50, alignment: .trailing)
.background(Color.orange)
}
}
.padding()
.padding(.trailing, 10)
0.33 * GeometryReader width + 0.67 * GeometryReader width + width of `.padding(.leading)` + width of `.padding(.trailing)`