Ios 当我们在文本和图像之间切换按钮内容时,如何停止SwiftUI更改固定填充?
所以我在屏幕底部有两个按钮,按钮A和按钮B,沿着这条线的某个地方,我需要用文本替换按钮中的图像,所以我们通过改变顶部的Bool来实现 虽然我们应用了相同的修改器,但按钮B的填充会发生变化,UI也会移动,似乎文本要求更多的空间。理想情况:将按钮图像更改为文本时,按钮A和B不应四处移动Ios 当我们在文本和图像之间切换按钮内容时,如何停止SwiftUI更改固定填充?,ios,swiftui,Ios,Swiftui,所以我在屏幕底部有两个按钮,按钮A和按钮B,沿着这条线的某个地方,我需要用文本替换按钮中的图像,所以我们通过改变顶部的Bool来实现 虽然我们应用了相同的修改器,但按钮B的填充会发生变化,UI也会移动,似乎文本要求更多的空间。理想情况:将按钮图像更改为文本时,按钮A和B不应四处移动 import SwiftUI private var showImage: Bool = true struct SwiftUIView: View { var body: some View {
import SwiftUI
private var showImage: Bool = true
struct SwiftUIView: View {
var body: some View {
VStack {
Spacer()
Button(action: {
print("CLICK")
}) {
Image(systemName: "a.circle")
.modifier(TestButtonModifier())
}
.padding(10)
Button(action: {
print("CLICK")
}) {
if showImage {
Image(systemName: "b.circle")
.modifier(TestButtonModifier())
} else {
Text("B")
.modifier(TestButtonModifier())
}
}
.padding(10)
} //: VSTACK
}
}
struct TestButtonModifier: ViewModifier {
func body(content: Content) -> some View {
content
.font(.system(size: 52, weight: .regular))
.frame(minWidth: 0, maxWidth: .infinity, maxHeight: 100)
.background(Color.black)
.padding(2)
.foregroundColor(Color.white)
}
}
struct SwiftUIView_Previews: PreviewProvider {
static var previews: some View {
SwiftUIView()
}
}
这是由于
VStack
间距,默认情况下,不同对子视图之间的间距不同,因此请指定一些明确的间距(或完全删除,即设置为零)
struct SwiftUIView:视图{
var body:一些观点{
VStack(间距:0){//
struct SwiftUIView: View {
var body: some View {
VStack(spacing: 0) { // << here !!
// .. other code